微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Postgres 和 SQL Server 中为日期添加一天

如何解决在 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 中的 datedatetime2 数据类型,仅适用于 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 举报,一经查实,本站将立刻删除。