获取SQL Server中的当前日期?

时间:2013-10-05 11:49:56

标签: sql sql-server sql-server-2008 datetime current-time

如何在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

我怎么能得到这个?

2 个答案:

答案 0 :(得分:112)

SELECT CAST(GETDATE() AS DATE)

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

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

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

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

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

答案 1 :(得分:14)

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

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

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

SQLFiddle