PostgreSQL | Как отобрать вчерашние записи из таблицы? — efim360.ru

PostgreSQL | Как отобрать вчерашние записи из таблицы?

Выражение в PostgreSQL будет выглядеть примерно так:

SELECT * FROM scheme.my_table WHERE date_trunc('day', datecreate) = date_trunc('day', CURRENT_TIMESTAMP - interval '1D');

или с лимитом, если записей может быть много

SELECT * FROM scheme.my_table WHERE date_trunc('day', datecreate) = date_trunc('day', CURRENT_TIMESTAMP - interval '1D') LIMIT 1000;

В результате мы отберём все возможные записи с датой вчерашнего дня.

datecreate — это название столбца в таблице, где хранятся даты создания записи.

scheme.my_table — это название СХЕМЫ ДАННЫХ и название нужной ТАБЛИЦЫ.

Все остальные поля универсальные и подходят под любую задачу.

 

При помощи функции date_trunc(), можно приводить разные типы к одному формату. Если говорить точнее, то «округлять» даты нужного типа, до нужной позиции по времени.

На 2022 год существует 13 таких временных позиций:

  1. microseconds
  2. milliseconds
  3. second
  4. minute
  5. hour
  6. day
  7. week
  8. month
  9. quarter
  10. year
  11. decade
  12. century
  13. millennium

Мы выбрали округление до дня так как нас интересуют все записи за 24 часа для искомого дня (для вчерашнего дня).

Чтобы попасть во вчерашний день, нужно сначала сделать сдвиг по дате. За это отвечают интервалы. Выражение «CURRENT_TIMESTAMP — interval ‘1D’» получает сегодняшнюю дату и вычитает из неё 24 часа. В результате мы попадаем во вчерашний день и потом округляем его до «ДНЯ» по типу TIMESTAMP WITH TIME ZONE.

Получили вчерашние записи из таблицы в PostgreSQL
Получили вчерашние записи из таблицы в PostgreSQL

 

Сколько вчерашних записей в таблице PostgreSQL?

Чтобы посчитать общее количество вчерашних записей таблицы, нужно воспользоваться агрегатной функцией count():

SELECT count(*) FROM a.t_d WHERE date_trunc('day', datecreate) = date_trunc('day', CURRENT_TIMESTAMP - interval '1D');

 

 

Информационные ссылки

PostgreSQL | Как отобрать сегодняшние записи из таблицы?

Официальный сайт WEB-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://www.postgresql.org

Команды SQLhttps://postgrespro.ru/docs/postgresql/15/sql-commands

Функции для работы с метками времени — https://postgrespro.ru/docs/postgresql/15/functions-datetime

Функция date_trunc()https://postgrespro.ru/docs/postgresql/15/functions-datetime#FUNCTIONS-DATETIME-TRUNC