Oracle数据库to_date函数注意事项

时间:2021-11-17 15:00:30

使用PL/SQL连接到Oracle数据库服务器,执行一条update语句:


update pjnl set transtime = to_date('2015-05-14 12:13:20','yyyy-MM-dd HH:mm:ss');

ORA-01810: format code appears twice错误,PL/SQL自动把错误定位到to_date函数的第二个参数。该函数用于把字符串转换为Oracle日期,第一个参数为日期字符串,第二个参数指定日期字符串的格式。

yyyy-MM-dd HH:mm:ss为Java语言中的写法,笔者参考了一下Oracle手册,下面为手册中对不同占位符的介绍:

Oracle数据库to_date函数注意事项

Oracle数据库to_date函数注意事项

问题出在分钟占位符的使用上,Oracle并不区分MM和mm,所以报“格式代码出现两次”错误。Oracle数据库SQL中使用mi代替分钟,这一点Java程序员切记不要犯错。

正确的sql语句应该为:

update pjnl set transtime = to_date('2015-05-14 12:13:20','yyyy-MM-dd HH:mi:ss');