Перейти к содержанию

Функции даты и времени

Получение данных

Поддерживаемые функции

Поддержка SQL-функций получения даты и времени в Picodata показана в таблице ниже.

Название функции Тип в PostgreSQL Поддержка в Picodata Тип в Picodata Примечание
CURRENT_DATE DATE ⚠️ datetime возвращает несовместимый тип, вместо времени указаны нули
CURRENT_TIME TIME WITH TIMEZONE
CURRENT_TIMESTAMP TIMESTAMP WITH TIMEZONE datetime
LOCALTIME TIME WITHOUT TIMEZONE
LOCALTIMESTAMP TIMESTAMP WITHOUT TIMEZONE ⚠️ datetime возвращает несовместимый тип, вывод соответствует CURRENT_TIMESTAMP

✅ — полностью поддерживается
⚠️ — поддерживается, но с отличиями от PostgreSQL
❌ — не поддерживается

CURRENT_DATE

Функция CURRENT_DATE возвращает объект типа DATETIME с текущей датой, временем 00:00:00 и часовым поясом. При этом, после позиции времени указывается текущий часовой пояс.

Примечание

Часовой пояс в выводе данной команды определяется настройками даты/времени хоста, на котором запущен инстанс Picodata, к которому, в свою очередь, подключена пользовательская сессия. Часовой пояс хоста можно посмотреть командами date +%Z или timedatectl.

Синтаксис

CURRENT_DATE

Примеры

sql>  VALUES (CURRENT_DATE);
+--------------------------+
| COLUMN_1                 |
+==========================+
| 2025-09-23T00:00:00+0300 |
+--------------------------+
(1 rows)

CURRENT_TIMESTAMP

Функция CURRENT_TIMESTAMP возвращает текущую дату, время и часовой пояс аналогично функции LOCALTIMESTAMP.

LOCALTIMESTAMP

Функция LOCALTIMESTAMP возвращает текущую дату и время, а также значение часового пояса. Это возвратит значение TIMESTAMP.

В качестве аргумента для функции можно указать целое число от 0 до 6, определяющее точность времени (детализацию дробной части для значения секунд; значения выше 6 игнорируются).

Примечание

Часовой пояс в выводе данной команды определяется настройками даты/времени хоста, на котором запущен инстанс Picodata, к которому, в свою очередь, подключена пользовательская сессия. Часовой пояс хоста можно посмотреть командами date +%Z или timedatectl.

Синтаксис

LOCALTIMESTAMP ( unsigned )

Примеры

Получение текущей даты и времени
sql> SELECT localtimestamp;
+---------------------------------+
| col_1                           |
+=================================+
| 2025-09-23T17:30:53.900692+0300 |
+---------------------------------+
(1 rows)
Получение текущей даты и времени с повышенной точностью
sql> SELECT localtimestamp(3);
+------------------------------+
| col_1                        |
+==============================+
| 2025-09-24T16:54:55.691000+0300 |
+------------------------------+
(1 rows)
Получение текущей даты и времени с максимальной точностью
sql> SELECT localtimestamp(6);
+------------------------------+
| col_1                        |
+==============================+
| 2025-09-24T16:55:12.291324+0300 |
+------------------------------+
(1 rows)

Преобразование данных

TO_CHAR

Функция TO_CHAR преобразует объект expression типа DATETIME в строку типа TEXT согласно формату format.

Значение format должно соответствовать спецификации strftime.

Синтаксис

TO_CHAR ( expression , format )

Выражение

Диаграмма

NOT table . column abs case cast coalesce current_date ilike instance_uuid like literal localtimestamp lower pico_instance_uuid pico_raft_leader_id pico_raft_leader_uuid substr substring to_char to_date trim upper version NOT EXISTS ( dql ( dql expression , ) IS NOT NULL TRUE FALSE UNKNOWN expression NOT BETWEEN expression AND IN + - * / % <> != >= > <= < = || AND OR expression

Литерал

Диаграмма

TRUE FALSE NULL decimal double integer string unsigned $ unsigned ?

Примеры

Тестовые таблицы

Примеры использования команд включают в себя запросы к тестовым таблицам.

Преобразование объектов DATETIME в строковые литералы заданного формата
sql> SELECT to_char(since, 'In stock since: %d %b %Y') FROM orders;
+-------------------------------+
| COL_1                         |
+===============================+
| "In stock since: 13 Feb 2024" |
|-------------------------------|
| "In stock since: 29 Jan 2024" |
|-------------------------------|
| "In stock since: 11 Nov 2023" |
|-------------------------------|
| "In stock since: 11 May 2024" |
|-------------------------------|
| "In stock since: 01 Apr 2024" |
+-------------------------------+
(5 rows)

TO_DATE

Функция TO_DATE преобразует строку expression типа TEXT в объект типа DATETIME согласно формату format.

Значение format должно соответствовать спецификации strftime. Если в качестве format передана пустая строка '', используется формат %F, он же %Y-%m-%d.

Примечания

Функция TO_DATE всегда возвращает начало дня — 00:00:00, даже если в строке expression указано время с точностью до секунд.

Синтаксис

TO_DATE ( expression , format )

Примеры

Преобразование строковых литералов в объекты DATETIME
sql> VALUES
    (to_date('2024-02-13 12:43:24', '%F')),
    (to_date('29.01.2024 15:41:22', '%d.%m.%Y')),
    (to_date('2023/11/11 13:01:56', '%Y/%m/%d')),
    (to_date('2024 05 11 18:59:01', '%Y %m %d')),
    (to_date('2024-04-01 00:00:01', ''));
+------------------------+
| COLUMN_5               |
+========================+
| "2024-02-13T00:00:00Z" |
|------------------------|
| "2024-01-29T00:00:00Z" |
|------------------------|
| "2023-11-11T00:00:00Z" |
|------------------------|
| "2024-05-11T00:00:00Z" |
|------------------------|
| "2024-04-01T00:00:00Z" |
+------------------------+
(5 rows)