SELECT GETDATE()

返回时间:2008-09-22 15:24:13.790

我想要没有时间部分的日期部分:2008-09-22 00:00:00.000

我怎么能得到那个?


当前回答

select convert(getdate() as date)

select CONVERT(datetime,CONVERT(date, getdate()))

其他回答

我知道这很古老,但我看不出哪里有人这样说。据我所知,这是ANSI标准。

SELECT CAST(CURRENT_TIMESTAMP AS DATE)

如果微软也能支持ANSI标准CURRENT_DATE变量,那就好了。

如果使用SQL 2008及更高版本:

select cast(getdate() as date)
select convert(getdate() as date)

select CONVERT(datetime,CONVERT(date, getdate()))

我的风格

      select Convert(smalldatetime,Convert(int,Convert(float,getdate())))

使用FLOOR()-只需削减时间部分。

SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)