sql - PostgreSQL 中 DATEADD 的等价物?
问题描述
我有这个查询,我曾经能够在 SQL Server 中运行,但不能在 PostgreSQL 中运行。您能否提供一个与我不能对 Postgres 使用 DATEADD 一样的查询。
select *
from VTable
where join_date>='1/1/2020' and join_date<'1/1/2021'
and join_date>= DATEADD(day,-30, removed_date)
and lremoved = 1
and countryid = '100010'
order by join_date asc
解决方案
如手册中所述,您可以将整数添加到date
表示要添加的天数的值。
此外:ANSI 日期文字优于特定于语言环境的日期(或时间戳)值,因为它们是明确的。
select *
from VTable
where join_date >= date '2020-01-01'
and join_date < date '2021-01-01'
and join_date >= removed_date - 30
and lremoved = 1
and countryid = '100010'
order by join_date asc
如果join_date
是 atimestamp
而不是 a date
,请使用区间:
and join_date >= removed_date - interval '30 days'
以上是 Postgres 碰巧尊重的所有标准 ANSI SQL。
推荐阅读
- java - DispatcherServlet 没有启动
- google-apps-script - 如何添加用户可以粘贴可点击 URL 的文本区域小部件?
- php - php pdf拆分为页面
- javascript - 为什么这个长度函数未定义?
- node.js - 使用 API 数据将 CSV 内容附加到预定义的列
- mysql - Slick flatMap 不会将所有查询作为一个组执行
- angular - 如何在角度 8 中测试 window.innerWidth 属性?
- c# - F# 与 C# 中的反序列化
- swift - 制作中间路线和最终路线?
- ios - 将视图锚定到主视图时出现自动布局错误 - Swift