当我选择日期在SQL返回为2011-02-25 21:17:33.933。但我只需要日期部分,即2011-02-25。我该怎么做呢?


当前回答

select DATE(字段)

字段值:2020-12-15 12:19:00

选择值:2020-12-15

其他回答

最快的是date ediff。

select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl

但是如果你只需要使用这个值,那么你可以跳过dateadd,例如。

select ...
WHERE somedate <= datediff(d, 0, getdate())

表达式datediff(d, 0, getdate())足以返回今天的日期而不包含时间部分。

CAST(
        FLOOR( 
             CAST( GETDATE() AS FLOAT ) 
        )

AS DATETIME
)

http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm

首先将日期转换为浮点数(这将显示数字),然后将数字舍入为0小数点,然后将其转换为datetime。

convert(datetime,round(convert(float,orderdate,101),0) ,101)

如果你想返回一个日期类型只是一个日期使用

CONVERT(date, SYSDATETIME())

or

SELECT CONVERT(date,SYSDATETIME()) 

or

DECLARE @DateOnly Datetime
SET @DateOnly=CONVERT(date,SYSDATETIME())

使用CAST(GETDATE()作为日期)为我工作