Thread: Order by birthdate
I'm trying to generate a birthday list ordered by month, then by day. This is what I thought would work... SELECT name,birthdate FROM table WHERE birthdate is not null ORDER BY date_part('month',birthdate) but psql returns: ERROR: parser: parse error at or near "(" What's the problem? -- Tim J Trowbridge trowbrid@writeme.com Interested in my genealogy? http://www.execpc.com/~trowbrid
On Wed, 10 Jun 1998, Tim J Trowbridge wrote: > > SELECT name,birthdate FROM table WHERE birthdate is not null ORDER BY > date_part('month',birthdate) > > but psql returns: > > ERROR: parser: parse error at or near "(" > > What's the problem? > Two problems here: 1. The date_part() which u use in the order by clause is not in the target list 2. Even if it was it wouldn't work as AFAIK functions are not allowed in the order by clause Try this: SELECT name,birthdate, date_part('month',birthdate) as birth_month FROM table WHERE birthdate is not null ORDER BY birth_month; Any better idea??? Marin -= Why do we need gates in a world without fences? =-
On Wed, 10 Jun 1998, Tim J Trowbridge wrote: > I'm trying to generate a birthday list ordered by month, then by day. > This is what I thought would work... > > SELECT name,birthdate FROM table WHERE birthdate is not null ORDER BY > date_part('month',birthdate) I don't understand why you need specify month to sort tuples, you may order it by birthday, but if you want it anyway try this: SELECT name, EXTRACT(month FROM birthdate) AS mese FROM table WHERE birthdate is not null ORDER BY mese > > but psql returns: > > ERROR: parser: parse error at or near "(" > > What's the problem? Seems that order by doesn't supports a function as parameter. Jose'