SELECT GETDATE()

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

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

我怎么能得到那个?


当前回答

select cast(createddate as date) as derivedate from table 

createdate是您的datetime列,这适用于sqlserver

其他回答

从SQL Server 2022(16.x)开始,另一个选项是DATETRUNC()函数,使用day作为datepart参数的值:

SELECT DATETRUNC(day, GETDATE());

日期:

SELECT CONVERT(date, GETDATE())
SELECT CAST(GETDATE() as date)

时间:

SELECT CONVERT(time , GETDATE() , 114)
SELECT CAST(GETDATE() as time)

日期(日期和时间字段)和Date_FORMAT(日期和日期,“%Y-%m-%d”)都只返回日期和时间的日期

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

select cast(getdate() as date)
SELECT * FROM tablename WHERE CAST ([my_date_time_var] AS DATE)= '8/5/2015'