sql报错--日期格式图片在转换整个输入字符串之前结束

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LuuvyJune/article/details/86536442

数据库:oracle

ORM框架:mybatis

  • 错误1: 无法转换为内部表示

数据库存储的日期格式为:

27-12月-18 09.50.57.017000 上午

要转换为“yyyy-MM-dd”的格式:

SELECT to_char(a.create_date,'yyyy-mm-dd') FROM cms_article a; 

以上在数据库执行能正确查询出结果。

to_char()是将日期格式-->字符串,实体类中定义的日期时Date类型,直接这样查询出来赋值的时候代码会报错:

Cause: java.sql.SQLException: Error ; uncategorized SQLException for SQL [];

意思是无法转换为内部表示,原因就是数据库查询的结果类型与实体定义的不符,无法转换。

  • 错误2:日期格式图片在转换整个输入字符串之前结束

转换为日期格式的函数to_date():

SELECT to_date(a.create_date, 'YYYY-MM') AS "createDate" FROM cms_article a;       

报错:

Cause: java.sql.SQLException: ORA-01830: 日期格式图片在转换整个输入字符串之前结束。

to_date()是将字符串-->日期格式,参数1是源字符串,参数2是要转换成的日期形式,to_date限制二者类型、精确度须一致。

(1)类型一致

比如上面的sql,要转换的字段a.create_date类型不是字符串,首先需要转换成字符串,再次转换成日期格式:

select to_date(to_char(a.create_date,'yyyy-mm-dd'),'yyyy-mm-dd') from cms_article a;

(2)精度一致

比如to_date(‘2019-01-07 13:23:44’,’yyyy-mm-dd’)  无法转换。

猜你喜欢

转载自blog.csdn.net/LuuvyJune/article/details/86536442
今日推荐