我需要打电话getdate()
,我需要一个datetime
返回,但是没有当前时间,例如今天它应该返回以下,无论它是什么时间被调用:
2013-09-26 00:00:00.000
我需要打电话getdate()
,我需要一个datetime
返回,但是没有当前时间,例如今天它应该返回以下,无论它是什么时间被调用:
2013-09-26 00:00:00.000
对于 SQL 2008/2012:
CAST(GETDATE() AS DATE)
或其他版本:
DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
这里有很多选择:
-- all versions:
SELECT CONVERT(DATETIME, {fn CURDATE()});
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP), 0);
SELECT CONVERT(DATETIME, CONVERT(INT, CONVERT(FLOAT, CURRENT_TIMESTAMP)));
SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, CURRENT_TIMESTAMP)));
-- 2008+:
SELECT CONVERT(DATETIME, CONVERT(DATE, CURRENT_TIMESTAMP));
-- 2012+:
DECLARE @d DATETIME = CURRENT_TIMESTAMP;
SELECT DATETIMEFROMPARTS(YEAR(@d), MONTH(@d), DAY(@d), 0,0,0,0);
你可能很想做这样的事情:
SELECT CONVERT(DATETIME, CONVERT(CHAR(8), CURRENT_TIMESTAMP, 112));
不。这是个坏消息。