Функции для работы с датой и временем
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().
