如何解决在 Postgres 和 SQL Server 中为日期添加一天
我正在寻找一种在 Postgres 和 sql Server 中为日期添加一天的方法,这样我就不必添加 if 条件来检查服务器正在运行的数据库
DATEADD(day,1,STOP_DATE)
在 Postgresql 中不起作用 &
STOP_DATE + 1
在 sql server 中不起作用
解决方法
总的来说,尝试使用 SQL Server 和 Postgres 上通用的语法编写 SQL 代码并不是一个好主意。您严重限制了自己,迟早会遇到运行速度过慢的查询,因为它不使用特定于某个 DBMS 的语法。
例如,通过您的方法,您人为地拒绝使用横向连接,因为它们的语法在 Postgres (LATERAL JOIN
) 和 SQL Server (CROSS/OUTER APPLY
) 中是不同的。
回到你的问题。
您可以将整数值添加到 Postgres 中的 date
值和 SQL Server 中的 datetime
值。
SQL Server
CREATE TABLE T(d datetime);
INSERT INTO T VALUES ('2020-01-01');
SELECT
d,d+1 AS NextDay
FROM T
http://sqlfiddle.com/#!18/d519d9/1
这将不适用于 SQL Server 中的 date
或 datetime2
数据类型,仅适用于 datetime
。
Postgres
CREATE TABLE T(d date);
INSERT INTO T VALUES ('2020-01-01');
SELECT
d,d+1 AS NextDay
FROM T
http://sqlfiddle.com/#!17/b9670/2
我不知道它是否适用于其他数据类型。
,在 PostgreSQL 中定义一个类似于 sql server 函数的函数。
编辑:
不能过去
在每个数据库系统上创建一个同名的函数,相应地增加一天。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。