> The point is: why EXTRACT accepts only date types ?
> SQL92 specifies date, time, timestamp and interval.
tgl=> select extract (year from date 'now');
date_part
---------
1998
(1 row)
tgl=> select extract (year from datetime 'now');
date_part
---------
1998
(1 row)
tgl=> select extract (year from abstime 'now');
date_part
---------
1998
(1 row)
tgl=> select extract(year from timestamp 'now');
date_part
---------
1998
(1 row)
tgl=> select extract (hour from timespan '5 hours');
date_part
---------
5
(1 row)
tgl=> select extract (hour from reltime '5 hours');
date_part
---------
5
(1 row)
tgl=> select extract (hour from interval '5 hours');
date_part
---------
5
(1 row)
And,
tgl=> select extract (hour from time '03:04:05');
ERROR: function 'time_timespan(time)' does not exist
This is a known problem; will fix for v6.4.
- Tom