在bigshift中将bigint数据类型转换为时间戳(以及随后的日期)

时间:2015-04-13 13:21:07

标签: amazon-redshift

我需要将存储在bigint列中的值转换为日期字段。转换的第一步涉及将其转换为时间戳,然后使用TRUNC方法将此列转换为日期值。 但是,在将bigint值转换为时间戳时,我的查询失败。 我得到的错误是: -

  

亚马逊无效操作:无法在没有时区的情况下将类型bigint强制转换为时间戳;

我现在尝试的查询是这样的: -

  

从事件限制1;

中选择ts :: timestamp

3 个答案:

答案 0 :(得分:0)

如果您从POSIX时间戳开始,并尝试获取时区感知日期时间值,则需要提供时区 - 即使您以后想要截断时间部分。我不熟悉红移,但也许有一种方法可以指明你的意思是UTC。

答案 1 :(得分:0)

我可以使用此主题中描述的方法来避免时区错误:https://stackoverflow.com/a/36399361

我的约会时间基于时代,我能够做到以下几点:

SELECT 
  (TIMESTAMP 'epoch' + contract_start_date * INTERVAL '1 Second ')
FROM
  table_name

答案 2 :(得分:0)

SELECT TIMESTAMP'epoch'+ {bigint列} / 1000 *间隔'1秒'作为tbl的日期