2013-10-05 106 views
56

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

我的数据库中列的格式为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

我怎么能得到这个?

回答

89
SELECT CAST(GETDATE() AS DATE) 

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

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

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

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

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

+6

我想补充一点,如果OP想要得到TIME部分设置为'00:00:00.000'的DATETIME结果,那么他可以使用'SELECT CAST(CAST(GETDATE()AS DATE)AS DATETIME)'。 – LightBulb

+0

@KamranAhmed,在这种情况下,我想指出[T-SQL日期和时间函数参考](http://technet.microsoft.com/en-us/library/ms186724(v = sql.105 )的.aspx)。 – LightBulb

+2

刷新并重试。我犯了一个错误,后来改成了正确的链接。对不起。 – LightBulb

11

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

如果你发现自己需要做,在SQL Server 2005中,你不必访问Date列的类型,我会使用:

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

SQLFiddle

相关问题