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

Redshift中字符串转24小时制时间戳失败问题求助

Redshift时间戳转24小时制失败的解决办法

问题出在哪

你用的格式串'Mon DD, YYYY HH24:MI:SS'和输入字符串'Jan 22, 2024 1:06:19 PM'不匹配——输入里带PM标识12小时制时段,但格式串用了HH24(对应24小时制小时),Redshift识别不了PM部分,直接把12小时制的1点当成24小时制的01点解析,结果自然不对。

正确操作方式

第一步:正确解析带AM/PM的时间

得用HH12匹配12小时制的小时,再加AM(大小写不敏感,写PM也行)来识别时段:

SELECT TO_TIMESTAMP('Jan 22, 2024 1:06:19 PM', 'Mon DD, YYYY HH12:MI:SS AM');

执行后会得到带时区的正确时间戳:2024-01-22 13:06:19+00。

第二步:输出不带时区的目标格式(可选)

如果要去掉时区后缀,得到你想要的2024-01-22 13:06:19,用TO_CHAR把时间戳转成指定格式的字符串就行:

SELECT TO_CHAR(TO_TIMESTAMP('Jan 22, 2024 1:06:19 PM', 'Mon DD, YYYY HH12:MI:SS AM'), 'YYYY-MM-DD HH24:MI:SS');

核心注意点

  • 解析时间字符串时,格式串必须和输入的结构完全对应,包括AM/PM这种时段标识。
  • HH24是用来输出24小时制小时,或者解析本身就是24小时制的输入;带AM/PM的12小时制输入,得用HH12来解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:39:51