ORA-01810

oracle 在执行如下 sql 进行日期转换时报 ORA-01810:格式代码转换出现两次

1
select TO_DATE('2018-1-9 12:41:00','yyyy-MM-dd hh24:mm:ss') from dual;

TO_DATE 函数的语法如下:

1
TO_DATE(char,fmt);

其中 char 为字符串,fmt 为日期格式,如 yyyy-mm-dd hh24:mi:ss

对于 SQL 的语法来说是不区分大小写的,所以日期格式的 MM 和 mm 是一样的,在 oracle 的日期转换中对于月份应该使用 MM,对于分钟应该使用 MI。sql 应该修改为如下:

1
select TO_DATE('2018-1-9 12:41:00','yyyy-MM-dd hh24:mi:ss') from dual;