Missing documentation for uses of extract(field from interval)
От | Daniel Grace |
---|---|
Тема | Missing documentation for uses of extract(field from interval) |
Дата | |
Msg-id | AANLkTinq_cgsuqgjkM5-R+anvSxTLdG6CD45nsVWCHG4@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: Missing documentation for uses of extract(field
from interval)
|
Список | pgsql-docs |
(Note: I'm not subscribed to pgsql-docs, so please CC me on any replies. Thanks!) I pulled up the documentation today to see if I could get just the number of days in an interval using EXTRACT. The answer provided was vague: While you can use EXTRACT(field from interval) (shown in table 9-27), section 9.9.1 only lists: day The day (of the month) field (1 - 31) SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 16 It turns out that EXTRACT(day FROM interval) does work as expected -- so perhaps the documentation should be updated to something like: day The day (of the month) field (1 - 31), or the number of days in the interval SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 16 SELECT EXTRACT(DAY FROM INTERVAL '42 days 21:00:00'); Result: 42 Likewise for month, year, century and maybe some others. (hour, minute, and *second{s?} probably don't need updated text). There also should probably be some warning in here about EXTRACT on intervals however. Namely cases like this: SELECT EXTRACT(YEAR FROM INTERVAL '400 days') --> Result: 0 (because the interval is '400 days' not '1 year 35 days') SELECT EXTRACT(DAY FROM INTERVAL '1 year') --> Result: 0 (because the interval is '1 year' not '365 days') SELECT EXTRACT(DAY FROM INTERVAL '1 month') --> Result: 0 Though, this works: SELECT EXTRACT(CENTURY FROM INTERVAL '99 years') --> Result: 0 SELECT EXTRACT(CENTURY FROM INTERVAL '100 years') --> Result: 1 -- Daniel Grace AGE, LLC System Administrator and Software Developer
В списке pgsql-docs по дате отправления: