Функции даты и времени¶
Получение данных¶
Поддерживаемые функции¶
Поддержка 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
.
Синтаксис¶
Примеры¶
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
.
Синтаксис¶
Примеры¶
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.
Синтаксис¶
Выражение¶
Диаграмма
Литерал¶
Диаграмма
Примеры¶
Тестовые таблицы
Примеры использования команд включают в себя запросы к тестовым таблицам.
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 указано время с точностью до секунд.
Синтаксис¶
Примеры¶
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)