2013-12-09 57 views

回答

1
SELECT CONVERT(SMALLDATETIME, CONVERT(CHAR(8), 20130901)); 

或者只是作爲一個DATETIME(可隱或顯式轉換爲SMALLDATETIME如果需要):

SELECT DATEADD(DAY, 0, CONVERT(CHAR(8), 20130901)); 

但是,爲什麼不DATE?如果時間總是0(午夜),爲什麼還要用SMALLDATETIMEDATETIME來承載時間呢?

此外,爲什麼你存儲/傳遞這個很長?什麼阻止有人向您發送201302319999999970000099或甚至包含8位以外的數字的值?我們有日期相關的數據類型是有原因的 - 所以我們不會像日期使用longs這樣的事情,這不僅會失去這種驗證but also a whole host of other functionality

0

嘗試以下。

SELECT CONVERT(DATETIME, CONVERT(VARCHAR(8), 20130901), 112)