2013-10-05 105 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

相關問題