达梦数据库to_date报错:“非法的时间日期类型数据”

问题描述

最近在数据库升级后,发现有个语句使用to_date(‘2022-01-11 11:22:33’,‘yyyy-mm-dd’)这样格式报错:”非法的时间日期类型数据“。

image-20220323090313192

原因分析

    通过查看两个对应版本的手册,查找发现在新版本中对于to_date转换的字符串数据的默认处理比较严格。通过DATETIME_FAST_RESTRICT参数来控制date的格式为FAST格式时,to_date中字符串是否允许带时间。默认该参数不允许带时间,带时间会报错。

image-20220323091023519

    以前这块处理比较宽松,新的版本中DATE默认FAST格式(默认年月日),字符串转为date的时候,要求更严格,默认为1,不允许年月日字符串带时间。设置为0之后,允许带时间,可以支持to_date(‘2021-11-16 11:15:00’,‘yyyy-mm-dd’) 这种格式的语句

处理办法

修改DATETIME_FAST_RESTRICT参数值为0。语句如下:

   sp_set_para_value(1,‘DATETIME_FAST_RESTRICT’,0);

image-20220323091346641

总结

1、在老版本特别是2021年4月之前的版本,在进行版本升级时需要注意一下可能会遇到这个问题。

2、在从MySQL迁移到达梦的系统,也需要关注下这个参数,可以调整为0。

当然,如果业务系统使用过程中没有遇到问题,可以不用修改该参数。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部