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小时制就用HH12MI:分钟数(00-59)MM:月份(01-12)SS:秒数(00-59)
内容的提问来源于stack exchange,提问作者Alain
相关产品推荐
相关产品推荐

