Arhn - архитектура программирования

Игнорирование секунд из временной метки postgres

Я запускаю задание cron каждую минуту для уведомления пользователей о событиях.

select * from events where event_start = now()  - interval '30 minutes'

так что я могу отправить пользователям уведомление до 30 минут события

проблема в том, что начало события - это поле метки времени, поэтому, если есть разница в секундах, это не сработает, поэтому как можно игнорировать часть секунд.

25.04.2014


Ответы:



2

Чтобы игнорировать секунды, вы можете использовать date_trunc() функция.

Функция date_trunc концептуально похожа на функцию trunc для чисел.

date_trunc(field, source [, time_zone ]) source — это выражение значения типа отметка времени, отметка времени с часовым поясом или интервал. (Значения типа даты и времени автоматически преобразуются в отметку времени или интервал соответственно.) Поле выбирает, до какой точности усекать входное значение. Возвращаемое значение также имеет тип отметка времени, отметка времени с часовым поясом или интервал, и все поля, которые менее значимы, чем выбранное, установлены на ноль (или единицу для дня и месяца).

Допустимые значения для поля:

  • микросекунды
  • миллисекунды
  • второй
  • минута
  • час
  • день
  • неделю
  • месяц
  • четверть
  • год
  • десятилетие
  • век
  • тысячелетие
SELECT date_trunc('hour', TIMESTAMP '2001-02-16 20:38:40');
Result: 2001-02-16 20:00:00

SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40');
Result: 2001-01-01 00:00:00

SELECT date_trunc('day', TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40+00');
Result: 2001-02-16 00:00:00-05

SELECT date_trunc('day', TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40+00', 'Australia/Sydney');
Result: 2001-02-16 08:00:00-05

SELECT date_trunc('hour', INTERVAL '3 days 02:47:33');
Result: 3 days 02:00:00

Итак, в вашем случае вы должны использовать:

SELECT * 
FROM events
WHERE event_start = date_trunc('minute', now()) - INTERVAL '30' MINUTE;
13.07.2020
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..