ANSI SQL用于减去一天

时间:2015-01-14 11:39:10

标签: mysql sql sql-server

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

EG。我有这个用于MySQL:

SELECT
  CURRENT_DATE - INTERVAL '30' DAY
FROM dual;

1 个答案:

答案 0 :(得分:2)

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()同时返回日期和时间时间。演员将时间部分剥离。