Вычитание дат в выражении ОБРАЩЕНИЯ

#postgresql #datediff

#postgresql #datediff

Вопрос:

Я хочу узнать, сколько дней находится между 2 датами в запросе. Вероятно, это что-то простое для опытного пользователя Postgres, но я не могу найти ответ..

И помощь была бы отличной.

 CASE
 WHEN DATEDIFF('day',a.date_approve,a.current_rec_date) = 1 
     THEN a.current_rec_date
 ELSE a.date_approved
END AS date_approved,
 

Ответ №1:

datediff() В Postgres нет.

Если столбцы равны date s, то простое их вычитание даст вам разницу в днях.

 ...
a.date_approve - a.current_rec_date = 1
...
 

Если они timestamp s, то их вычитание даст вам an interval , поэтому вам нужно будет сравнить его с an interval .

 ...
a.date_approve - a.current_rec_date = '1 day'::interval
...
 

Вы можете получить дополнительную информацию из документации.

Комментарии:

1. Хммм …. Я запускаю запрос типа: ВЫБЕРИТЕ date_approved — current_rec_date = ‘1 day’::interval ИЗ approved_recommendations, ГДЕ label= ‘EVA’; И я получаю результат ‘true’.

2. @LandonStatis: Так date_approved и current_rec_date есть, с разницей в один день. Не так ли?