88

如何在 MS-SQL Server 2008 R2 中获取当前日期?

我的数据库中列的格式是DATETIME,日期以以下格式存储:

+++++++++++++ Vrdate ++++++++++
|                             |
|   2012-11-18 00:00:00.000   |
|   2012-11-19 00:00:00.000   |
|   2013-11-18 00:00:00.000   |
|   2012-12-01 00:00:00.000   |
|   2010-10-09 00:00:00.000   |
|   2012-11-11 00:00:00.000   |
|                             |
+++++++++++++++++++++++++++++++

我进行了搜索,但无法找到以这种格式获取日期的方法(即在 中具有与之关联的时间00:00:00.00)。我找到GETDATE()了函数,但它也提供了当前时间和日期,我想要的是获取以下格式的日期:CurrentDate 00:00:00.00

我怎样才能得到这个?

4

2 回答 2

141
SELECT CAST(GETDATE() AS DATE)

返回删除时间部分的当前日期。

DATETIMEs 不是“以下列格式存储的”。它们以二进制格式存储。

SELECT CAST(GETDATE() AS BINARY(8))

问题中的显示格式与存储无关。

格式化为特定的显示格式应该由您的应用程序完成。

于 2013-10-05T11:51:28.063 回答
17

当您使用 SQL Server 2008 时,请使用 Martin 的答案。

如果您发现自己需要在无法访问Date列类型的 SQL Server 2005 中执行此操作,我会使用:

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)

SQLFiddle

于 2013-10-05T11:55:36.867 回答