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

如何从带Z后缀的Timestamp中提取小时?解决hour函数报错

解决PostgreSQL提取带时区时间戳小时的报错问题

问题原因

PostgreSQL中没有直接支持timestamp with time zone类型的hour()函数,你遇到的报错就是因为传入的参数类型不匹配。

两种可行解决方案

  • 使用EXTRACT函数提取小时:
SELECT EXTRACT(HOUR FROM '2022-11-25T17:54:29.819Z'::timestamp with time zone);

执行后会返回数值类型的小时数(示例中为17)。

  • 使用DATE_PART函数提取小时:
SELECT DATE_PART('hour', '2022-11-25T17:54:29.819Z'::timestamp with time zone);

该函数与EXTRACT功能一致,同样返回数值型的小时结果。

额外:时区转换后提取小时

如果需要提取指定时区下的小时数,可以先转换时区再提取,比如转换为东八区(Asia/Shanghai):

SELECT EXTRACT(HOUR FROM '2022-11-25T17:54:29.819Z'::timestamp with time zone AT TIME ZONE 'Asia/Shanghai');

示例中UTC时间17:54转换为东八区是次日01:54,执行后会返回1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:55:25