3

電話するgetdate()必要があり、datetime返される必要がありますが、現在の時刻がなくても、たとえば今日は、呼び出された時間に関係なく、次を返す必要があります。

2013-09-26 00:00:00.000
4

2 に答える 2

12

SQL 2008/2012 の場合:

CAST(GETDATE() AS DATE)

または他のバージョン:

DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
于 2013-09-26T18:30:50.007 に答える
8

ここにたくさんのオプションがあります:

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

しないでください。これは悪いニュースです。

于 2013-09-26T18:30:32.207 に答える