2016-11-23 159 views
0

如何在Teradata SQL中將時間戳(格式爲這種方式:1,437,538,735.00)轉換爲日期和時間(例如2016-11-23 14:00:00)?將時間戳轉換爲日期和時間Sql

謝謝!

+0

你可以只用'CAST(timestampData截止日期)的[提取的日期和時間 - (Teradata數據)]' –

+0

可能的複製( http://stackoverflow.com/questions/23506057/extract-the-date-and-time-teradata) –

+0

@CoderofCode不,它不是重複的。這裏要求將時代轉換爲teradata時間戳 –

回答

0

這看起來像是Unix格式的時間,所以它是自1970-01-01以來的秒數。像這樣的東西應該工作:

select timestamp '1970-01-01 00:00:00' + interval '1437538735' second 

我沒有Teradata手頭專門測試語法。

+0

恐怕我對Teradata很陌生,所以我不確定其餘的語法。會是:CAST(timestamp'1970-01-01 00:00:00'+ interval'1437538735')AS FINAL_DATE – user7172167

+0

問題是teradata不接受超過9999的間隔子句 –

0

試試這個:

select CAST(DATE '1970-01-01' + (1437538735/86400) AS TIMESTAMP(0)) + ((1437538735 MOD 86400) * INTERVAL '00:00:01' HOUR TO SECOND) td_ts 
0
select timestamp '1970-01-01 00:00:00' + 1437538735 * interval '0 00:00:01' day to second 

附:
有了這個語法,你可以用它代替硬編碼值科拉姆/表達

+0

應該是'select timestamp'1970-01- 01 00:00:00'+ 1437538735 * interval'0000 00:00:01'day to second',但它會失敗,因爲它超過27年:-) – dnoeth

+0

該死的。移動。 OOO :-) –

+0

@dnoeth,當然關於27年,但我的另一個錯誤首先是使用'day(4)'。括號不適用於文字。 –