SimplePg
Модуль SimplePg предоставляет доступ к некоторым функциям из кодовой базы PostgreSQL, при этом входные и выходные аргументы адаптированны к примитивным типам.
По умолчанию, для вызова этих функций понадобится указание имени модуля в виде SimplePg::foo, но если добавить PRAGMA SimplePg, то их можно будет использовать в глобальной области видимости как foo (при этом гарантируется, что они перекроют встроенную функцию YQL, если таковая есть).
Для многих функций из этого модуля есть аналог среди других функций YQL с лучшей производительностью.
now
Сигнатура
SimplePg::now() -> Timestamp?
Доступна начиная с версии 2025.04.
Аргументов нет.
Возвращает текущее время.
Оригинальная документация.
Аналог - CurrentUtcTimestamp.
Примеры
PRAGMA SimplePg;
SELECT now();
to_date
Сигнатура
SimplePg::to_date(Utf8?,Utf8?) -> Date32?
Доступна начиная с версии 2025.04.
Аргументы:
- Строка с значением даты;
- Строка формата.
Парсит дату согласно строке формата.
Оригинальная документация.
Аналог - DateTime::Parse64.
Примеры
PRAGMA SimplePg;
SELECT to_date('05 Dec 2000', 'DD Mon YYYY'); -- 2000-12-05
to_char
Сигнатура
SimplePg::to_char(AnyPrimitiveType?,Utf8?) -> Utf8?
Доступна начиная с версии 2025.04.
Аргументы:
- Значение примитивного типа;
- Строка формата.
Форматирует значение согласно строке формата.
Оригинальная документация.
Аналог - DateTime::Format.
Примеры
PRAGMA SimplePg;
SELECT to_char(125.8, '999D9'); -- " 125.8"
SELECT to_char(Timestamp('2002-04-20T17:31:12.66Z'), 'HH12:MI:SS'); -- 05:31:12
date_part
Сигнатура
SimplePg::date_part(Utf8?,Timestamp64?) -> Double?
SimplePg::date_part(Utf8?,Interval64?) -> Double?
Доступна начиная с версии 2025.04.
Аргументы:
- Компонента, возможные значения;
- Таймстемп.
Извлекает из таймстемпа или интервала заданную компоненту.
Оригинальная документация.
Аналог - DateTime::Get.
Примеры
PRAGMA SimplePg;
SELECT date_part('hour', Timestamp('2001-02-16T20:38:40Z')); -- 20
SELECT date_part('minute', Interval('PT01H02M03S')); -- 2
date_trunc
Сигнатура
SimplePg::date_trunc(Utf8?,Timestamp64?) -> Timestamp64?
Доступна начиная с версии 2025.04.
Аргументы:
- Масштаб, возможные значения;
- Таймстемп.
Округляет таймстемп на начало заданного масштаба.
Оригинальная документация.
Аналог - DateTime::StartOf и т.п..
Примеры
PRAGMA SimplePg;
SELECT date_trunc('hour', Timestamp('2001-02-16T20:38:40Z')); -- 2001-02-16 20:00:00
SELECT date_trunc('year', Timestamp('2001-02-16T20:38:40Z')); -- 2001-01-01 00:00:00
floor
Сигнатура
SimplePg::floor(Double?) -> Double?
Доступна начиная с версии 2025.04.
Аргументы:
- Значение с плавающей точкой;
Округляет значение до целого числа в меньшую сторону.
Оригинальная документация.
Аналог - Math::Floor.
Примеры
PRAGMA SimplePg;
SELECT floor(42.8); -- 42
SELECT floor(-42.8); -- -43
ceil
Сигнатура
SimplePg::ceil(Double?) -> Double?
Доступна начиная с версии 2025.04.
Аргументы:
- Значение с плавающей точкой;
Округляет значение до целого числа в большую сторону.
Оригинальная документация.
Аналог - Math::Ceil.
Примеры
PRAGMA SimplePg;
SELECT ceil(42.2); -- 43
SELECT ceil(-42.8); -- -42
round
Сигнатура
SimplePg::round(Double?,[Int32?]) -> Double?
Доступна начиная с версии 2025.04.
Аргументы:
- Значение с плавающей точкой;
- Опциональное число знаков после запятой (по умолчанию - 0).
Округляет значение до заданного количества десятичных знаков. Используется округление от нуля.
Оригинальная документация.
Аналог - Math::Round.
Примеры
PRAGMA SimplePg;
SELECT round(42.4382, 2); -- 42.44
SELECT round(1234.56, -1); -- 1230