oracle与tidb时间格式化函数不兼容简述

由Oracle迁移到TiDB后,时间格式会出现不兼容的情况。 Oracle用的时间格式化函数为TO_DATE,转换到TiDB的时间格式化函数为STR_TO_DATE。在Oracle中,TO_DATE(#{APLY_DT},'yyyy-MM-dd'),入参APLY_DT传入'20230101'时,由于Oracle兼容性较好,可以正常保存;但在TiDB中,STR_TO_DATE(#{APLY_DT},'%Y-%m-%d')只能接受APLY_DT传入'2023-01-01'的格式,传入'20230101'则会直接报错,而P2员工渠道调用P32520616时所用时间控件传入的时间格式为'20230101',该格式传到后端会导致报错。

解决方案:

全局搜索项目中的STR_TO_DATE函数,并按如下方式进行整改:STR_TO_DATE(#{APLY_DT},'%Y-%m-%d')的写法直接改成STR_TO_DATE(#{APLY_DT})即可,按上述写法,TiDB可兼容入参为'20230101'、'2023-01-01'、'2023/01/01'等格式,并且可以成功将转换后的值保存到TiDB的date或者datetime字段中。

相关推荐
数据库小学妹几秒前
AI Agent连数据库怎么控权限?只读账号的4个缺口
数据库·人工智能·安全·数据库权限·审计·ai数据库·只读账号
瑞克-桑切斯9 分钟前
6、MySQL 总结
数据库
凤凰院凶涛QAQ21 分钟前
《MySQL内核拆解:从SQL到InnoDB》(三) : 数据库设计 & 聚合查询 & 分组查询
数据库·sql·mysql
Decay__1 小时前
01_MySQL 体系架构全解 —— 连接层、SQL 层、存储引擎层与 InnoDB 深入
运维·数据库·sql·mysql·架构
Linux_cy1 小时前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
在多学一点2 小时前
MySQL_DDL的基本命令
数据库·mysql·adb
是程序喵呀2 小时前
Redis实现持久化
数据库·redis·缓存
z06.3 小时前
MySQL存储引擎
数据库·mysql
小徐不徐说3 小时前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计
JackLam3 小时前
Gitea HTTPS 反向代理配置
数据库