Как узнать полное количество дней между одной датой и другой датой в PostgreSQL?
У нас есть две даты:
SELECT '2022-07-11 09:36:49.388216'::timestamp without time zone; SELECT '2022-09-29 16:55:45.104096'::timestamp without time zone;
Нам нужно узнать разницу в днях между самой новой датой и самой старой датой. Как это сделать?
Вычитание дат
В PostgreSQL даты можно вычитать друг из друга путём символа дефиса:
SELECT '2022-09-29 16:55:45.104096'::timestamp without time zone - '2022-07-11 09:36:49.388216'::timestamp without time zone;
Обе даты имеют тип timestamp without time zone.
В результате нам вернётся тип данных interval.

Если из меньшей даты вычесть большую, то интервал будет иметь отрицательное значение. По сути интервал просто поменяет знак, а значение будет таким же.
Мы видим, что кроме дней нам прилетели и остальные важные значения касаемо даты — часы, минуты, секунды и т.д.. Но нам нужны только дни. Как их получить?
Как получить целое количество дней из интервала в PostgreSQL?
Для решения основной задачи, нам нужно дополнительно воспользоваться функцией EXTRACT(), которая может извлекать определённые поля из объектов «дата/время«.
В качестве полей могут выступать следующие:
- century (век)
- day (день)
- decade (декада)
- dow (день недели)
- doy (день года)
- epoch
- hour
- isodow
- isoyear
- julian
- microseconds
- millennium
- milliseconds
- minute
- month
- quarter
- second
- timezone
- timezone_hour
- timezone_minute
- week
- year
Нас будет интересовать поле DAY, которое будет доставать из интервала полное количество дней в отличии от таймштампа.
SELECT EXTRACT(DAY FROM '2022-09-29 16:55:45.104096'::timestamp without time zone - '2022-07-11 09:36:49.388216'::timestamp without time zone);
Этот запрос вернёт нам 80 полных дней в виде числового значения numeric.

Информационные ссылки
Официальный сайт WEB-оболочки pgAdmin — https://www.pgadmin.org
Официальный сайт СУБД PostgreSQL — https://www.postgresql.org
Раздел «Операторы и функции даты/времени» — https://postgrespro.ru/docs/postgresql/14/functions-datetime
Функция EXTRACT() — https://postgrespro.ru/docs/postgresql/14/functions-datetime#FUNCTIONS-DATETIME-EXTRACT