获取SQL Server中的当前日期?

Getting the current date in SQL Server?

本问题已经有最佳答案,请猛点这里访问。

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

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

1
2
3
4
5
6
7
8
9
10
+++++++++++++ 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

我怎么能拿到这个?


1
SELECT CAST(GETDATE() AS DATE)

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

DATETIMEs不是"按以下格式存储"。它们以二进制格式存储。

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

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

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


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

如果您发现自己需要在SQL Server 2005中这样做,而您没有访问Date列类型的权限,我将使用:

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

sqlfiddle