2016-11-23 160 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)'。括号不适用于文字。 –