gpt4 book ai didi

sql - 在 Oracle、PostgreSQL 和 SQL Server 中比较时间戳的常用方法

转载 作者:行者123 更新时间:2023-11-29 11:09:57 24 4
gpt4 key购买 nike

我正在编写一个 SQL 查询,其中涉及查找时间戳是否落在特定的日期范围内。

我已经在 PostgreSQL 中编写了它,但它在 Oracle 和 SQL Server 中不起作用:

AND creation_date < (CURRENT_TIMESTAMP - interval '5 days')
AND creation_date >= (CURRENT_TIMESTAMP - interval '15 days')

是否有通用的方法来比较不同数据库的时间戳?

最佳答案

我不是 SQL Server 专家,但我知道这适用于 Oracle 和 Postgres,我怀疑它可能适用于 MSSQL,但无法在 ATM 上对其进行测试。

AND creation_date < (CURRENT_TIMESTAMP - interval '5' day)
AND creation_date >= (CURRENT_TIMESTAMP - interval '15' day)

或者,如果您使用的是日期类型而不是时间戳,您可以这样做,但我很确定它不适用于 MSSQL。并且 DATE 类型在 Oracle 和 Pg 之间有很大的不同。

AND creation_date < CURRENT_DATE - 5
AND creation_date >= CURRENT_DATE - 15

如 OMG Ponies 的评论中所述,您只能将整数添加到日期类型,而不是时间戳。 (Oracle 默默地将时间戳转换到日期)

关于sql - 在 Oracle、PostgreSQL 和 SQL Server 中比较时间戳的常用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com