我需要致电getdate()
并且我需要返回datetime
,但是没有当前时间,例如今天它应该返回以下内容,无论它被称为什么时候:
2013-09-26 00:00:00.000
答案 0 :(得分:6)
这里有很多选择:
-- 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));
答案 1 :(得分:2)
对于SQL 2008/2012:
CAST(GETDATE() AS DATE)
或其他版本:
DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)