Учебное пособие Санкт-Петербург «бхв-петербург»


quantity unit [quantity unit ...] direction



Pdf көрінісі
бет45/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   41   42   43   44   45   46   47   48   ...   256
sql osnovi yazika

quantity unit [quantity unit ...] direction
Здесь unit означает единицу измерения, а quantity — количество таких единиц. В ка-
честве единиц измерения можно использовать следующие: microsecond, millisecond,
second, minute, hour, day, week, month, year, decade, century, millennium. Параметр
direction может принимать значение ago (т. е. «тому назад») либо быть пустым. При-
ведем примеры:
SELECT '1 year 2 months ago'::interval;
interval
------------------
-1 years -2 mons
(1 строка)
Обратите внимание, что параметр ago заставляет СУБД добавить знак «минус» перед
всеми полями.
Можно использовать альтернативный формат, предлагаемый стандартом ISO 8601:
P [ years-months-days ] [ T hours:minutes:seconds ]
Здесь строка должна начинаться с символа «P», а символ «T» разделяет дату и время
(все выражение пишется без пробелов).
61


Глава 4. Типы данных СУБД PostgreSQL
Например:
SELECT 'P0001-02-03T04:05:06'::interval;
interval
-------------------------------
1 year 2 mons 3 days 04:05:06
(1 строка)
Поскольку интервал — это отрезок времени между двумя временн ´ыми отметками, то
значение этого типа можно получить при вычитании одной временн´ой отметки из
другой.
SELECT ('2016-09-16'::timestamp - '2016-09-01'::timestamp)::interval;
interval
----------
15 days
(1 строка)
Как мы уже говорили ранее, в PostgreSQL предусмотрен целый ряд функций для ра-
боты с датами и временем. Например, для получения значений текущей даты, теку-
щего времени и текущей временн´ой отметки (т. е. даты и времени в одном значении)
служат функции current_date, current_time, current_timestamp. Эти функции
часто применяются для получения значений по умолчанию при вставке строк в таб-
лицы. Их особенностью является то, что при их вызове круглые скобки не исполь-
зуются. Для получения полной информации обратитесь к документации (раздел 9.9
«Операторы и функции даты/времени»).
Значения временн ´ых отметок можно усекать с той или иной точностью с помощью
функции date_trunc. Например, для получения текущей временн´ой отметки с точ-
ностью до одного часа нужно сделать так:


Достарыңызбен бөлісу:
1   ...   41   42   43   44   45   46   47   48   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет