一、问题描述
oracle数据库下,报这个错
Ora-01830 日期格式图片在转换整个输入字符串之前结束。如下图所示。
sql语句是这样写的
select count(*) from data t where
and to_date(t.re_time,'yyyy-mm-dd') > to_date('2016-03-02', 'yyyy-mm-dd')
and to_date(t.re_time,'yyyy-mm-dd') < to_date('2016-03-10', 'yyyy-mm-dd')
and to_date(t.f_date,'yyyy-mm-dd') > to_date ('2016-03-26', 'yyyy-mm-dd')
and to_date(t.f_date,'yyyy-mm-dd') < to_date ('2016-10-28', 'yyyy-mm-dd')
二、问题分析
出现这个错误的原因是数据库字段跟指定转换的格式不符。
查看了一下数据库字段的格式,两个字段都是字符型的,需要转换成date型。一个是2014-04-24 21:01:27,另一个是2014-05-02 10:45,所以日期格式也应该跟这个相符。
三、解决方式
改一下sql
select count(*) from data t where
and to_date(t.re,'yyyy-mm-dd hh24:mi:ss') > to_date('2016-03-02', 'yyyy-mm-dd')
and to_date(t.re,'yyyy-mm-dd hh24:mi:ss') < to_date('2016-03-10', 'yyyy-mm-dd')
and to_date(t.f_date,'yyyy-mm-dd hh24:mi') > to_date ('2016-03-26', 'yyyy-mm-dd')
and to_date(t.f_date,'yyyy-mm-dd hh24:mi') < to_date ('2016-10-28', 'yyyy-mm-dd')
就可以啦~~~