postgresql - 在 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,
解决方案
Postgres中没有datediff()
。
如果列是date
s 那么简单地减去它们会给你天数的差异。
...
a.date_approve - a.current_rec_date = 1
...
如果他们timestamp
减去他们会得到你,interval
所以你需要将它与一个进行比较interval
。
...
a.date_approve - a.current_rec_date = '1 day'::interval
...
您可以从文档中获得更多信息。
推荐阅读
- python - 从非结构化表中提取特定信息。如何修复此错误并构建我的数据并获取所需的表?
- mysql - 在比较 2 个表并返回计数时比较和匹配键绑定
- javascript - 当值发生离散跳跃时如何平滑地转换输入滑块
- python - 我想使用芹菜从项目 B 运行项目 A 的任务。它们都有不同的代码库。有可能这样做吗?
- server - 如何在 GridDB 查询中使用样本进行测试(500 内部服务器错误)?
- discord.py - get_member() 为新加入的成员返回 None,尽管启用了公会成员意图
- testing - google云平台开发测试自动化框架的建议
- amazon-web-services - 使用带有别名的 KMS 加密存储桶中的 s3:GetObject
- python - 难以理解烧瓶逻辑
- c++ - 返回向量的常量引用