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

Oracle SQL时区转换查询中MM格式符返回月份而非分钟求助

解决PostgreSQL时区转换后时间格式化的分钟/月份混淆问题

这问题我之前也踩过坑!核心原因是你用错了PostgreSQL to_char函数的时间格式标识符——MM是用来表示月份的,而分钟对应的正确标识符是MI!

你看,原查询里的'HH:MM'会把时间里的月份提取出来,刚好你的测试时间是10月的某天,所以就把10当成分钟显示了,才出现12:10这种错误结果。

直接把格式字符串改成'HH:MI'就能解决问题,修正后的查询语句如下:

select 
  t.actual_start_dttm before_conversion, 
  to_char(cast(t.actual_start_dttm as timestamp) at time zone 'US/Eastern', 'HH:MI') after_conversion 
from task t 
where task_id = '695421'

执行这个查询后,欧洲时间17:12转换到美东时区后,就会正确显示为12:12了。

顺便给你提个小备忘,PostgreSQL to_char里常用的时间格式标识符要记清楚:

  • HH:24小时制的小时(00-23),如果需要12小时制就用HH12
  • MI:分钟数(00-59)
  • MM:月份(01-12)
  • SS:秒数(00-59)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:20:06