暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 LeeWen2020 2022-03-23
8197

问题描述

最近在数据库升级后,发现有个语句使用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。

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论