#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