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
Предыдущая
Следующая