Amazon redshift 在红移中将bigint数据类型转换为时间戳(随后转换为日期)

Amazon redshift 在红移中将bigint数据类型转换为时间戳(随后转换为日期),amazon-redshift,Amazon Redshift,我需要将存储在bigint列中的值转换为日期字段。转换的第一步涉及将其转换为时间戳,然后使用TRUNC方法将此列转换为日期值。 但是,我的查询在将bigint值转换为timestamp时失败。 我得到的错误是:- Amazon无效操作:无法将类型bigint强制转换为没有时区的时间戳 我现在尝试的查询是这样的:- 从事件限制1中选择ts::timestamp 如果您从POSIX时间戳开始,并试图获得一个时区感知的datetime值,那么您将需要提供一个时区-即使您以后想要截断时间部分。我不熟悉红

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

Amazon无效操作:无法将类型bigint强制转换为没有时区的时间戳

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

从事件限制1中选择ts::timestamp


如果您从POSIX时间戳开始,并试图获得一个时区感知的datetime值,那么您将需要提供一个时区-即使您以后想要截断时间部分。我不熟悉红移,但也许有一种方法可以指定您的意思是UTC。

我可以使用此线程中描述的方法避免时区错误:

我的日期基于年代,我能够做到以下几点:

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

选择时间戳“epoch”+{bigint列}/1000*间隔“1秒”作为来自tbl的数据

选择时区“UTC”的时间戳(1395036000);这恰好是一个有效的postgres查询,但在红移中不起作用。为我工作,谢谢!