Расширение pg_when — человеческий способ записывать время

Сколько раз составляя SQL-запрос Вы мучались, высчитывая выражения дат и времени для критериев отбора? Расширение pg_when решает эту задачу элегантно: оно парсит естественный язык (к сожалению, только английский) и возвращает timestamptz (или Unix epoch в секундах, миллисекундах, микросекундах).

Запрос для функций из pg_when состоит из трёх компонентов — дата, время, часовой пояс — соединённых ключевыми словами at и in.

Несколько примеров:

```sql
-- Начало текущего часа, но 5 дней назад, в Москве
SELECT when_is('5 days ago at this hour in Europe/Moscow');

-- Следующая пятница, 20:00, в Москве
SELECT when_is('next friday at 20:00 in Europe/Moscow');

-- Ровно через 2 месяца, полночь, GMT+3
SELECT when_is('in 2 months at midnight in UTC+3');

-- Новогоднее выступление
SELECT when_is('31/12/2026 at 23:55');

-- Те же значения, но в Unix epoch
SELECT seconds_at('5 days ago at this hour in Europe/Moscow');
SELECT millis_at('5 days ago at this hour in Europe/Moscow');
SELECT micros_at('5 days ago at this hour in Europe/Moscow');
```



Поддерживаются относительные даты (today, yesterday, next week, last month, in 2 years), точные даты в разных форматах (YYYY-MM-DD, DD/MM/YYYY, 31-12-2026), время (midnight, evening, 20:00, 22:30) и именованные часовые пояса. Если часовой пояс не указан — используется UTC.

Расширение pg_when особенно полезно для создания запросов вида «покажи заказы за последнюю неделю» так, чтобы они работали каждый день без модификации их текста и при этом сохраняли «читаемость».
Просмотры: 148
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти