Обсуждение: 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'