Функции для даты и времени
Функции для даты и времени — это функции для работы с данными типов 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 |
+-----------------+-----------------+-----------------+
now()
Описание |
Возвращает текущее время в виде значения типа |
Использование |
|
Посмотреть пример
SELECT
now() AS cur_time;
+----------------------------------+
| cur_time |
+----------------------------------+
| 2025-08-26 13:38:58.461000+00:00 |
+----------------------------------+
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 |
+--------------+------+------------+
date_diff()
Описание |
Возвращает количество единиц времени между двумя моментами времени в виде значения типа |
Использование |
|
Аргументами могут быть значения типов: TIME
, DATE
, TIMESTAMP
или TIMESTAMPTZ
.
Единицы могут быть указаны с помощью следующих литералов
-
century
— век -
day
— день -
decade
— десятилетие -
hour
— час -
microseconds
— микросекунды -
millennium
— тысячелетие -
milliseconds
— миллисекунды -
minute
— минута -
month
— месяц -
quarter
— квартал -
second
— секунда -
year
— год
Посмотреть примеры
SELECT
date_diff('second', TIME '01:02:03', TIME '03:02:01') AS diff_in_seconds,
date_diff('minute', TIME '01:02:03', TIME '03:02:01') AS diff_in_minutes,
date_diff('hour', TIME '01:02:03', TIME '03:02:01') AS diff_in_hours,
date_diff('day', TIMESTAMP '2025-02-25 01:02:03', TIMESTAMP '2025-02-26 03:02:01') AS diff_in_days,
date_diff('day', TIMESTAMP '2025-02-26 01:02:03', TIMESTAMP '2025-02-25 03:02:01') AS diff_in_days,
date_diff('day', DATE '2024-02-27', DATE '2025-02-27') AS diff_in_days;
+-----------------+-----------------+---------------+--------------+--------------+--------------+
| diff_in_seconds | diff_in_minutes | diff_in_hours | diff_in_days | diff_in_days | diff_in_days |
+-----------------+-----------------+---------------+--------------+--------------+--------------+
| 7198 | 120 | 2 | 1 | -1 | 366 |
+-----------------+-----------------+---------------+--------------+--------------+--------------+
Оператор +
Описание |
Прибавляет правый аргумент к левому. |
Использование |
|
Если используется с типами для для даты и времени, то прибавляет интервал к значению времени. Возвращает значение типа TIME
.
См. также add()
.
Посмотреть примеры
SELECT
3 + 2 AS result_1,
3 + 2 + -1 AS result_2,
1.1 + 1.9 AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 5 | 4 | 3.0 |
+----------+----------+----------+
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 |
+---------------+---------------+
Оператор -
Описание |
Вычитает правый аргумент из левого. |
Использование |
|
Если используется с типами для для даты и времени, то вычитает интервал из значения времени. Возвращает значение типа TIME
.
См. также subtract()
.
Посмотреть примеры
SELECT
3 - 2 AS result_1,
3 - 2 - +1 AS result_2,
1.2 - 0.2 AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 0 | 1.0 |
+----------+----------+----------+
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 |
+---------------+---------------+