首页 > 解决方案 > 在 CASE 表达式中减去日期

问题描述

我正在寻找查询中两个日期之间的天数。对于经验丰富的 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,

标签: postgresqldatediff

解决方案


Postgres中没有datediff()

如果列是dates 那么简单地减去它们会给你天数的差异。

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

如果他们timestamp减去他们会得到你,interval所以你需要将它与一个进行比较interval

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

您可以从文档中获得更多信息。


推荐阅读