Поиск дней между датами

#postgresql #between #days

#postgresql #между #дни

Вопрос:

Я хочу вычесть 2 даты, чтобы получить количество дней между ними. Однако столбцы определяются как «временная метка без часового пояса». Я не уверен, как получить целое целое число.

У меня есть хранимая процедура с этим кодом:

 v_days_between_changes := DATE_PATH('day',CURRENT_DATE - v_prev_rec.date_updated)::integer;
  

Но я получаю эту ошибку:

ПОДСКАЗКА: ни одна функция не соответствует заданному имени и типам аргументов. Возможно, вам потребуется добавить явное приведение типов.

ЗАПРОС: ВЫБЕРИТЕ DATE_PATH(‘day’,CURRENT_DATE — v_prev_rec.date_updated)::целое число

Любая помощь была бы отличной.

Ответ №1:

Вы можете вычислить разницу между датами, которая возвращает интервал. Затем извлеките количество дней из этого интервала.

 WITH src(dt1,dt2) AS (select '1/1/2019'::timestamp without time zone, CURRENT_DATE ) 
select EXTRACT(day FROM dt2-dt1) nbdays
from src;
 nbdays
-----------
        98