2011-10-20 63 views
9

我正在使用MS SQL Server 2008, ,並在一個表格中列出idate作爲日期,但採用整數格式。 但在查詢中,我希望在日期格式。 是否有可能將整數日期轉換爲適當的日期時間格式?如何在SQL Server 2008中將int轉換爲日期

+0

當你說你有一個整數格式的日期,你究竟是什麼意思 - 格式是什麼? – condiosluzverde

+0

戴維是正確的。 'DATEADD(DAY,40835,'1900-01-01')'在我運行的測試中稍快。 –

回答

15

不能將整數值轉換直奔約會,但你可以先它再以日期時間日期類型

select cast(40835 as datetime)

,然後轉換成日期(SQL 2008)

select cast(cast(40835 as datetime) as date)

歡呼

+1

只是重讀你的問題,如果想作爲一個日期時間,然後只是選擇投(40835作爲日期時間) – davey

3

你必須先將其轉換日期時間,然後d吃了。

試試這個,它可能會有所幫助:

Select Convert(DATETIME, LEFT(20130101, 8)) 

然後轉換爲日期。

0

閱讀本文可幫助解決類似問題。數據採用十進制數據類型 - [DOB] [decimal](8,0)NOT NULL - 例如 - 19700109.我想在月份得到。解決方案是將SUBSTRING和CONVERT結合到VARCHAR。

SELECT [NUM] 
     ,SUBSTRING(CONVERT(VARCHAR, DOB),5,2) AS mob 
    FROM [Dbname].[dbo].[Tablename] 
0

如果你的整數時間戳以毫秒爲單位使用:

SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name 

它將格式化毫秒YYYY-MM-DD字符串。

+0

問題是關於MS SQL Server沒有任何函數'strftime'(我相信是一個SQLite函數?) – jpw

相關問題