如何将纪元时间值转换为teradata中的时间戳(6)?
让我们以1336987231051作为示例纪元时间(注意这是以毫秒为单位,其中纪元时间以秒为单位),我做了类似的事情
// miliseconds epoch time
select cast(1336987231051 as timestamp(6))
// seconds epoch time
select cast((1336987231051/1000) as timestamp(6))
我收到上述两个选择语句的错误消息:
[Error] Script lines: 12-12 ------------------------
[Teradata Database] [TeraJDBC 13.10.00.31] [Error 5407] [SQLState HY000] Invalid operation for DateTime or Interval.
我在http://www.epochconverter.com/验证了1336987231051是有效的纪元时间。
teradata中正确的sql是什么?
答案 0 :(得分:0)
select
cast(cast(700101 as date) + seconds_from_epoch / 86400 as timestamp(6)) +
(seconds_from_epoch mod 86400) * interval '00:00:01' hour to second
from my_table
答案 1 :(得分:0)
将EPOCH转换为TERADATA TIME的最简单方法。
SELECT
1336987231051/1000 as unix_epoc_time ,
to_timestamp(unix_epoc_time) utc,
cast(cast(utc as char(19))||'+00:00' as timestamp(0) with time zone) AT LOCAL
;
/1000
。AT LOCAL
或使用这些“ America Central”,“ America Eastern”,“ America Mountain” “等等。