【发布时间】:2021-07-05 10:36:09
【问题描述】:
我正在寻找一种在 Postgres 和 SQL Server 中为日期添加日期的方法,因此我不必添加 if 条件来检查服务器正在运行的数据库
DATEADD(day, 1, STOP_DATE)
不适用于 PostgreSQL &
STOP_DATE + 1
在 sql server 中不起作用
【问题讨论】:
-
SQL 的每一种方言都是不同的,您不应该期望为一个 RDBMS 编写的 SQL 可以为另一个 RDBMS 工作。他们做的次数很少,通常使用非常简单的语法。甚至 ANSI-SQL 也不总是可移植的,因为不同的 RDBMS 并不支持它的所有部分;而且通常不是相同的部分。
-
就像我们都说过的,为您正在使用的 RDBMS 编写定制 SQL,@Laurens。如果您有多个环境,使用不同的 RDBMS,那么您需要使用应用程序中的设置来确保您使用正确的 SQL 语句。
-
是的,但
date + interval的类型必须始终相同。你和我@Lamu 都知道在添加一整天时简化事情是明智的,但类型规则并不是那么微妙。 -
您应该创建自己的自定义函数 AddDay,它在 Postgre 或 SQL Server 中的实现方式不同,但允许您在两者上使用相同的 SQL。
-
date和interval也是两种不同的数据类型。
标签: sql sql-server postgresql sql-server-2017