You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何将解析后的时间戳传入UTC转EST转换?

UTC转EST时间戳的解决方法

你需要先把REPLACE处理后的文本正确转成timestamp类型,再执行时区转换——之前报错就是因为处理后是文本格式,没法直接用AT TIME ZONE。

正确SQL语句

假设你的TimeStampColumn去掉空格后是YYYY-MM-DDHH24:MI:SS格式(比如2022-05-0611:28:21),用TO_TIMESTAMP指定格式转换:

SELECT ((TO_TIMESTAMP(REPLACE(TimeStampColumn, ' ', ''), 'YYYY-MM-DDHH24:MI:SS') AT TIME ZONE 'UTC') AT TIME ZONE 'EST')

为什么之前转换失败?

如果之前直接用::timestamp强制转换,因为处理后的字符串没有日期和时间的分隔空格,数据库没法自动识别格式,必须用TO_TIMESTAMP明确指定匹配的格式模板才能转换成功。

额外建议

如果需要自动适配夏令时,别用固定偏移的EST,改用时区标识符America/New_York:

SELECT ((TO_TIMESTAMP(REPLACE(TimeStampColumn, ' ', ''), 'YYYY-MM-DDHH24:MI:SS') AT TIME ZONE 'UTC') AT TIME ZONE 'America/New_York')

内容的提问来源于stack exchange,提问作者Andrew Tam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:10:54