如何使用TO_DATE函数将SQL的DATE字段更新为PM时间
问题解决方法
报错原因
你使用的时间格式掩码HH属于12小时制规范,仅支持1-12的小时取值,输入24小时制的13-23范围的小时值时,就会触发范围校验报错。
修复方案
根据你的使用场景选择任意一种即可:
- 场景1:坚持使用24小时制时间字符串
将格式掩码中的HH替换为24小时制专用的HH24标识,修改后的示例代码如下:TO_DATE('2021-09-30 23:00:00', 'YYYY-MM-DD HH24:MI:SS') - 场景2:保留12小时制写法
可以在时间字符串末尾补充AM/PM标识,同时在格式掩码中增加对应的AM匹配项,示例代码如下:TO_DATE('2021-09-30 11:00:00 PM', 'YYYY-MM-DD HH:MI:SS AM')
补充说明
上述写法适配Oracle、PostgreSQL等原生支持TO_DATE函数的数据库,如果你使用的是MySQL,对应24小时制的格式符为%H,12小时制为%h,可按需调整。
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

