2012-05-22 194 views
5

我有1323648000這是int(10)。我需要能夠將其轉換爲某種日期格式。像dd/hh/yy hh:mm:ss。我已經試過在這裏給我們幾個例子,但我似乎無法得到它的工作。我試圖把它作爲一個varchar(10)並轉換,但沒有。 Excel也輸出########。那麼數字不正確?SQL將INT轉換爲datetime

SELECT 
engine4_openid_statusstats.openidstat_id, 
CONVERT(datetime,CAST(engine4_openid_statusstats.openidstat_time AS varchar(10),3), 
engine4_openid_services.openidservice_id, 
engine4_openid_services.openidservice_name 
FROM 
engine4_openid_statusstats , 
engine4_openid_services 
+0

什麼RDBMS?看起來像MS SQL服務器... –

+0

是的,它是一個MS SQL Server的 – tiggles

回答

5

這看上去就像一個Unix風格基於劃時代時間戳,自1970年以來

轉換的秒即數是RDBMS特定的。用SQLITE,你會做

select datetime(1323648000, 'unixepoch'); 

並且產量2011-12-12 00:00:00(GMT)。

檢查您的RDBMS文檔的日期時間轉換函數。

+0

你是正確的這是一個Unix時間戳我用。 'FROM UNIXTIME(engine4_openid_statusstats.openidstat_time)' 和它的工作。謝謝! – tiggles

1
TO_CHAR(column_name, 'DD/MM/YYYY hh:mm:ss') 
+0

沒有工作:(選擇 engine4_openid_statusstats.openidstat_id, TO_CHAR(CAST(engine4_openid_statusstats.openidstat_time爲varchar(10),3),「DD/MM/YYYY HH:MM:SS'), engine4_openid_services.openidservice_id, engine4_openid_services.openidservice_name FROM engine4_openid_statusstats, engine4_openid_services – tiggles

2

如果確實存儲爲Epoch Time(它看上去就是這樣),那些是自1970年1月1日以來的秒數。您可以通過將日期加上秒數將其轉換爲日期時間。

SELECT DATEADD(SS, 1323648000, '01/01/1970')