2016-04-25 126 views
0

我有一個表格,其中日期存儲爲CYYMMDD(其中C是世紀(當前存儲爲整數))的日期略多於200,000個。例如,1992年12月5日將顯示爲1921205,2016年4月25日將顯示爲2160425。我需要以YYYMMDD格式在新表格中顯示這些結果。因此,對於前面的兩個示例,它將是1992120520160425。我曾嘗試使用SQL Server 2012 - 將CYYMMDD日期轉換爲YYYYMMDD

CONVERT(VARCHAR(8),[DATE], 112) 

這不會給出錯誤,但它也不會執行轉換,因此我所有的日期看起來都一樣。我究竟做錯了什麼?

+2

爲什麼不值只是存儲作爲一個實際的'DATE'數據類型,而不是將其轉換爲'VARCHAR'? – Siyual

+0

當我嘗試通過使用'CONVERT(DATE,[DATE],112)轉換爲日期'時,出現以下錯誤:不允許將數據類型int顯式轉換爲日期。 – mdarr

回答

1

你需要如下分割你的數值:

DATEFROMPARTS(1800 + FLOOR([DATE]/10000) , FLOOR([DATE]/100)%100, [DATE]%100)

+0

'[Date]'是一個'INT'數據類型,而不是'VARCHAR'。 – Siyual

+0

謝謝!這對我有用! – mdarr

相關問題