支持MySQL和SQL Server我需要从日期中减去几天。这可以用ANSI SQL完成,还是需要维护两个版本?
EG。我有这个用于MySQL:
SELECT
CURRENT_DATE - INTERVAL '30' DAY
FROM dual;
答案 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()
同时返回日期和时间时间。演员将时间部分剥离。