Amazon redshift 在红移中将bigint数据类型转换为时间戳(随后转换为日期)
我需要将存储在bigint列中的值转换为日期字段。转换的第一步涉及将其转换为时间戳,然后使用TRUNC方法将此列转换为日期值。 但是,我的查询在将bigint值转换为timestamp时失败。 我得到的错误是:- Amazon无效操作:无法将类型bigint强制转换为没有时区的时间戳 我现在尝试的查询是这样的:- 从事件限制1中选择ts::timestampAmazon redshift 在红移中将bigint数据类型转换为时间戳(随后转换为日期),amazon-redshift,Amazon Redshift,我需要将存储在bigint列中的值转换为日期字段。转换的第一步涉及将其转换为时间戳,然后使用TRUNC方法将此列转换为日期值。 但是,我的查询在将bigint值转换为timestamp时失败。 我得到的错误是:- Amazon无效操作:无法将类型bigint强制转换为没有时区的时间戳 我现在尝试的查询是这样的:- 从事件限制1中选择ts::timestamp 如果您从POSIX时间戳开始,并试图获得一个时区感知的datetime值,那么您将需要提供一个时区-即使您以后想要截断时间部分。我不熟悉红
如果您从POSIX时间戳开始,并试图获得一个时区感知的datetime值,那么您将需要提供一个时区-即使您以后想要截断时间部分。我不熟悉红移,但也许有一种方法可以指定您的意思是UTC。我可以使用此线程中描述的方法避免时区错误: 我的日期基于年代,我能够做到以下几点:
SELECT
(TIMESTAMP 'epoch' + contract_start_date * INTERVAL '1 Second ')
FROM
table_name
选择时间戳“epoch”+{bigint列}/1000*间隔“1秒”作为来自tbl的数据选择时区“UTC”的时间戳(1395036000);这恰好是一个有效的postgres查询,但在红移中不起作用。为我工作,谢谢!