日期为0的date类型在MySQL和tidb表现不一样

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:TiDB-v3.1.0-rc
  • 【问题描述】:1982-10-00在MySQL中不报错,在tidb中会报错。如何规避这个问题,loader执行失败
    image image

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

您好: 请先对比一下mysql和tidb 的sql_mode是否一样,多谢

MySQL的sql_mode为空,tidb是默认的


image

您好,

经测试,去掉 sql_mode 中 STRICT_TRANS_TABLES 可以满足你的需求,但是请进行业务评估。

相关资料:

tidb 默认 sql_mode
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

可以尝试修改 sql_mode 达到想要的效果。但是建议正确使用日期。

https://pingcap.com/docs-cn/v3.1/reference/sql/sql-mode/

好的,谢谢老师。后期会统一处理业务方生产的异常数据,目前是先存起来,打通流程。

ok,如有新的问题可以新开贴哦~

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。