小编典典

ANSI SQL减去一天

sql

同时支持MySQL和SQL Server我需要从日期中减去几天。可以使用ANSI SQL完成此操作,还是需要维护两个版本?

例如。我有这个用于MySQL:

SELECT
  CURRENT_DATE - INTERVAL '30' DAY
FROM dual;

阅读 142

收藏
2021-04-28

共1个答案

小编典典

ANSI SQL 2003规范没有公开可用的版本,但是没有厂商完全支持它。无论如何,这两者之间的语法有足够的差异,可以为每个编写不同的代码。

MySQL具有以下DATE_ADD功能:

SELECT DATE_ADD(CURRENT_DATE, INTERVAL 30 DAY)
FROM dual;

SQL Server具有一个DATEADD功能(不带下划线):

SELECT DATEADD(DAY, 30, CAST(GETDATE() AS date))

GETDATE()同时返回日期和时间。演员表剥夺了时间部分。

2021-04-28