同时支持MySQL和SQL Server我需要从日期中减去几天。可以使用ANSI SQL完成此操作,还是需要维护两个版本?
例如。我有这个用于MySQL:
SELECT CURRENT_DATE - INTERVAL '30' DAY FROM dual;
ANSI SQL 2003规范没有公开可用的版本,但是没有厂商完全支持它。无论如何,这两者之间的语法有足够的差异,可以为每个编写不同的代码。
MySQL具有以下DATE_ADD功能:
DATE_ADD
SELECT DATE_ADD(CURRENT_DATE, INTERVAL 30 DAY) FROM dual;
SQL Server具有一个DATEADD功能(不带下划线):
DATEADD
SELECT DATEADD(DAY, 30, CAST(GETDATE() AS date))
GETDATE()同时返回日期和时间。演员表剥夺了时间部分。
GETDATE()