Иллюстрированный самоучитель по PostgreSQL

Функции для работы с датой и временем

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()
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.