2010-06-11 82 views
0

我知道,當我這樣做時,將其轉換GETDATE爲intTSQL GETDATE轉換

select cast (getdate() as int) 

我的服務器上GETDATE輸出爲 「2010-06-11 14:42:20.100」 和INT哪個上述命令轉換爲40339.這個整數是什麼?這個int是否考慮過分鐘和 秒?我很困惑。請幫忙。

問候

Manjot

回答

0

此號碼是由於參考日期,這是01/01/1900的天數。你應該得到相同的結果:

SELECT DATEDIFF(day, 0, GETDATE()) 

在內部,SQL將datetimes存儲爲兩個4字節整數。第一個整數(您在聲明中獲得的)表示自參考日期以來的天數。第二個整數代表自午夜以來1/300秒的間隔數。您可以通過先將二進制轉換爲二進制,然後再轉換爲int來找到第二個整數:

SELECT CONVERT(int, CONVERT(binary(4), GETDATE())) 
+0

非常感謝。 – Manjot 2010-06-11 03:07:14