SELECT GETDATE()

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

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

我怎么能得到那个?


当前回答

我知道这很古老,但我看不出哪里有人这样说。据我所知,这是ANSI标准。

SELECT CAST(CURRENT_TIMESTAMP AS DATE)

如果微软也能支持ANSI标准CURRENT_DATE变量,那就好了。

其他回答

为了获得指示的结果,我使用以下命令。

SELECT CONVERT(DATETIME,CONVERT(DATE,GETDATE()))

我认为它很有用。

您可以使用CONVERT函数仅返回日期。请参阅以下链接:

SQL Server 2000中的日期和时间操作

铸造和转换

使用convert函数的语法为:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 

在这种情况下,仅限日期,我们将运行以下查询:

选择转换(VARCHAR(10),getdate(),111);

SQLServer2008现在有一个“日期”数据类型,它只包含一个日期,而不包含时间组件。使用SQLServer 2008及更高版本的任何人都可以执行以下操作:

SELECT CONVERT(date, GETDATE())

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

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