SELECT GETDATE()

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

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

我怎么能得到那个?


当前回答

我认为这对你来说是可行的:

CONVERT(VARCHAR(10),Person.DateOfBirth,111) AS BirthDate
//here date is obtained as 1990/09/25

其他回答

只要做到:

SELECT CAST(日期变量为日期)

或使用PostgreSQL:

SELECT date_variable::日期

这就是所谓的打字!

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

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

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

SELECT DATETRUNC(day, GETDATE());

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

select cast(getdate() as date)

在SQL Server 2000上

CAST(
(
    STR( YEAR( GETDATE() ) ) + '/' +
    STR( MONTH( GETDATE() ) ) + '/' +
    STR( DAY( GETDATE() ) )
)
AS DATETIME)