GETDATE()但没有时间

时间:2013-09-26 18:25:19

标签: sql-server datetime

我需要致电getdate()并且我需要返回datetime,但是没有当前时间,例如今天它应该返回以下内容,无论它被称为什么时候:

2013-09-26 00:00:00.000

2 个答案:

答案 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));

别。 This is bad news

答案 1 :(得分:2)

对于SQL 2008/2012:

CAST(GETDATE() AS DATE)

或其他版本:

DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)