项目里利用My97Datepicker 显示时间,到java端转换的时候报错了,拷贝了一下sql语句运行了一下发现错误,百度一下找到了问题的所在原来格式化的时候写
TO_DATE('2016-03-20 16:06:35','yyyy-mm-dd HH24:mm:ss') oracle 在格式化的时候不知道该怎么解析mm了,正确写法如下:
SELECT * FROM (SELECT ROWNUM RN,T.* FROM ( SELECT * FROM bos_iam_app_roles WHERE CREATE_TIME=TO_DATE('2016-03-20 16:06:35','yyyy-MM-dd HH24:mi:ss') )T WHERE ROWNUM <=5 ) WHERE RN>=1
网上的说明如下:
ORA-01810: format code appears twice
www.2cto.com
可能是像 Java那样指定日期格式,比如:
to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:MM:ss')
而在 Oracle中的日期格式是不区分大小写的,所以 mm 出现了两次。
正确的写法是:
to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')
Oralce中的to_date()函数用于将字符串转换为日期对象,具体使用格式为:
to_date( string, [ format_mask ] , [ nls_language ] )
string 要转换的字符串.
format_mask 可选项,日期转换格式.
nls_language 可选项. 指定用于转换字符串的nls language.