当我选择日期在SQL返回为2011-02-25 21:17:33.933。但我只需要日期部分,即2011-02-25。我该怎么做呢?
当前回答
SQL Server 2008:
Convert(date, getdate())
请参考https://learn.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
其他回答
使用CAST(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
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)
我会使用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