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


当前回答

我会使用DATEFROMPARTS函数。这很简单,你不需要选角。以这个查询为例:

Select  DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE())) as myNewDate

将返回

2021-01-21

好的部分是你也可以创建你自己的日期,例如你想要一个月的第一天作为日期,那么你可以像下面这样使用:

Select  DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) as myNewDate

结果将是:

2021-01-01

其他回答

SQL Server 2008:

Convert(date, getdate())  

请参考https://learn.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql

如果你需要时间为0,比如2018-01-17 00:00:00.000:

Select convert (datetime, convert (date, getdate ()), 121)

虽然已经太晚了,但我还是坚持了下来

declare @vCurrentDate date=getutcdate()

select @vCurrentDate

当数据类型为date时,小时将被截断

select DATE(字段)

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

选择值:2020-12-15

在转换为日期后将其转换回datetime,以便在需要时保持相同的datatime

select Convert(datetime, Convert(date, getdate())  )