Функции для даты и времени
Функции для даты и времени — это функции для работы с данными типов DATE
, TIME
, TIMESTAMP
и TIMESTAMPTZ
.
current_time()
Описание |
Возвращает текущее время в виде значения типа |
Использование |
|
Псевдонимы |
|
Посмотреть пример
SELECT
current_time AS cur_time_1,
current_time() AS cur_time_2,
get_current_time() AS cur_time_3;
+-----------------+-----------------+-----------------+
| cur_time_1 | cur_time_2 | cur_time_3 |
+-----------------+-----------------+-----------------+
| 10:33:24.016000 | 10:33:24.016000 | 10:33:24.016000 |
+-----------------+-----------------+-----------------+
datepart()
Описание |
Возвращает указанную часть от значения даты или времени в виде значения |
Использование |
|
Псевдонимы |
|
Аргументами могут быть значения типов: TIME
, DATE
, TIMESTAMP
или TIMESTAMPTZ
.
Части могут быть указаны с помощью литералов:
-
century
— век -
day
— день -
decade
— десятилетие -
hour
— час -
microseconds
— микросекунды -
millennium
— тысячелетие -
milliseconds
— миллисекунды -
minute
— минута -
month
— месяц -
quarter
— квартал -
second
— секунда -
year
— год
Посмотреть пример
SELECT
datepart('milliseconds', TIMESTAMP '2025-02-25 00:00:00.1') AS milliseconds,
datepart('hour', TIME '2025-02-25 00:00:00') AS hour,
datepart('millennium', DATE '2025-02-25') AS millennium;
+--------------+------+------------+
| milliseconds | hour | millennium |
+--------------+------+------------+
| 100 | 0 | 3 |
+--------------+------+------------+
Оператор +
Описание |
Прибавляет интервал к значению времени. Возвращает значение типа |
Использование |
|
Посмотреть пример
SELECT
TIME '12:11:10' + INTERVAL 3 hours AS result_time_1,
INTERVAL '12:11:10' + TIME '1:1:1' AS result_time_2;
+---------------+---------------+
| result_time_1 | result_time_2 |
+---------------+---------------+
| 15:11:10 | 13:12:11 |
+---------------+---------------+
Оператор -
Описание |
Вычитает интервал из значения времени. Возвращает значение типа |
Использование |
|
Посмотреть пример
SELECT
TIME '12:11:10' - INTERVAL 3 HOUR AS result_time_1,
TIME '12:11:10' - INTERVAL 3 HOUR - INTERVAL 1 HOUR AS result_time_2;
+---------------+---------------+
| result_time_1 | result_time_2 |
+---------------+---------------+
| 09:11:10 | 08:11:10 |
+---------------+---------------+