Функции для работы с датой и временем
date_trunc()
Синтаксис:
date_trunc(s .t)
Функция date_trunc () получает два аргумента s и t, относящихся к типам text и timestamp соответственно. Строка s определяет компонент, до которого усекается аргумент t. В данном контексте под усечением понимается удаление всех компонентов, детализация которых превышает заданную.
Допустимые значения аргумента s перечислены в табл. 5.12.
Пример:
booktown=# SELECT date_trune('minute', now()); date trunc 2001-08-31 09:59:00-07 (1 row) booktown=# SELECT date_trunc('hour', now()); date trunc 2001-08-31 09:00:00-07 (1 row) booktown=# SELECT date_trunc('year', now()); date trunc 2001-01-01 00:00:00-08 (1 row)
extract()
Синтаксис:
extract(k FROM t) extract(k FROM 1)
Функция SQL92 extract() представляет собой аналог функции PostgreSQL date_part() со слегка измененным синтаксисом. При перечислении аргументов вместо запятой используется ключевое слово FROM. Аргументы аналогичны аргументам функции date_part(), хотя первый аргумент является ключевым словом SQL, а не строкой и поэтому не заключается в кавычки. Допустимые значения k перечислены в табл. 5.12.
Учтите, что функция extract() является "псевдонимом" функции PostgreSQL date_part () в синтаксисе SQL92, поэтому по умолчанию в выходных данных функция extract() представляется именем date_part.
Примеры:
booktown=# SELECT extract(MINUTE FROM interval('3 days 12 minutes1)): datejpart 12 (1 row) booktown=# SELECT extractCMONTH FROM now()): date_part 8 (1 row)