Функции для работы с датой и временем
date_part()
Синтаксис:
date_part(s .t) date_part(s .i)
Функция date_part() получает два аргумента. Первый аргумент s относится к типу text, а второй, t или I, – к типу timestamp или interval соответственно. Функция выделяет во втором аргументе компонент, определяемый строкой s, и возвращает его в виде значения типа double precision.
Чтобы лучше понять, как работает функция date_part(), представьте, что значение типа timestamp или interval делится на компоненты – часы, минуты и т. д. Эти компоненты (и соответственно допустимые значения аргумента s) перечислены в табл. 5.12. Помните, что некоторые значения относятся только к типу tlmestamp и не поддерживаются для типа Interval.
Таблица 5.12. Компоненты типов timestamp и interval.
Компонент | Описание |
---|---|
century | Год, разделенный на 100 (не совпадает с текущим веком!) |
day | День месяца (от 1 до 31) для типа timestamp, продолжительность интервала в днях для типа interval |
decade | Год, разделенный на 10 |
dow | День недели (от 0 до 6), начиная с воскресенья. Для типа interval не поддерживается |
doy | День года (от 1 до 366). Для типа interval не поддерживается |
epoch | Количество секунд от начала эпохи (1 января 1970 г.) для типа timestamp, продолжительность интервала в секундах для типа interval |
hour | Час в значении типа timestamp |
microseconds | Количество миллионных долей в дробной части секунд для значения типа timestamp |
millennium | Год, разделенный на 1000 (не совпадает с текущим тысячелетием!) |
milliseconds | Количество тысячных долей в дробной части секунд для значения типа timestamp |
minute | Минуты в значении типа timestamp или interval |
month | Месяц в значении типа timestamp или остаток от деления продолжительности интервала в месяцах на 12 для типа interval |
quarter | Квартал (от 1 до 4) для значений типа timestamp |
second | Секунды в значении типа timestamp или interval |
week | Номер недели в году для значений типа timestamp. В стандарте ISO-8601 первая неделя года определяется как неделя, в которую входит 4 января |
year | Год в значении типа timestamp или interval |
Примеры:
booktown=# SELECT date_part('minute'. booktown(# intervalC3 days 4 hours 12 minutes')): date_part 12 (1 row) booktown=# SELECT isbn, booktown-l date_part('year', publication) booktown-# FROM editions booktown-# ORDER BY date_part ASC booktown-# LIMIT 3; isbn | date_part 0760720002 | 1868 0679803335 | 1922 0694003611 | 1947 (3 rows)
Примечание
Аналогом функции date_part() в SQL является функция extract().