微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从毫秒时代 postgresql

如何解决无法从毫秒时代 postgresql

我正在查询数据库 (RedShift) 并且我有一条以纪元 MS 格式存储的信息。设想一个表格:

Purchase,date
1,1620140227019
2,1620140227045
3,1620140226573

我需要将时间戳转换为可读日期,但我无法使用 to_timestamp() 或 extract() 使其工作。问题首先在于值的大小(不支持 13 位数字)。 我最接近的解决方案是

select  to_timestamp(1620140226573/1000,'SS')

但结果是0051-05-04 14:57:06。换句话说,月份、日期和秒是正确的,但年份是错误的。

解决方法

您可以运行此查询

select to_timestamp(round(1620140227254/1000))
,

解决方案在文档中:https://docs.aws.amazon.com/redshift/latest/dg/r_Dateparts_for_datetime_functions.html

SELECT timestamp with time zone 'epoch' + 1620140227019/1000 * interval '1 second' AS converted_timestamp

select '1970-01-01'::date + 1620140227019/1000 * interval '1 second'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。