使用 PostgreSQL 减去两个日期

moe*_*moe 6 sql postgresql date

我试图从彼此减去 2 个日期,但它似乎没有正确减去,我不确定我在这里做错了什么。如果日期之间的差异小于 90 天,我使用 case 语句将其标记为 1,否则将其标记为 0。但即使日期之间的差异大于 90 天,它也始终标记为 1。我是 PostgreSQL,这里是我的案例陈述:

CASE WHEN EXTRACT(DAY FROM CAST(SVS_DT AS DATE) - CAST(DSCH_TS AS DATE)) <90 
      THEN 1 ELSE 0 END AS FU90
Run Code Online (Sandbox Code Playgroud)

日期的例子在这里:

SVS_DT                         DSCH_TS
2013-03-22 00:00:00            2010-05-06 00:00:00
Run Code Online (Sandbox Code Playgroud)

在这种情况下假设标记为 0 但它标记为 1 因为这两个日期之间的差异大于 90 天。

Mur*_*nik 4

extractof a day 返回日期的日元素。由于天数始终介于 1 和 31 之间,因此最大差值为 30,且不能大于 90。

减去dates 以整数形式返回天数差。所以你只需要挂断电话extract

CASE WHEN (CAST(SVS_DT AS DATE) - CAST(DSCH_TS AS DATE)) < 90 THEN 1 
                                                              ELSE 0 
     END AS FU90
Run Code Online (Sandbox Code Playgroud)