注册 登录
编程论坛 Oracle论坛

遇到一个棘手的问题 希望哥哥姐姐帮我解决一下 提示ORA-01722: 无效数字

慧根 发布于 2018-08-15 16:12, 6274 次点击
------项目勘察反馈及时率
 
 select ty.nameabbr as 区县,kcgs.zcount as 总数,kcjs.jscount as 及时数,
 case when kcgs.zcount is not null and kcgs.zcount<>0 then round((kcjs.jscount/kcgs.zcount*100),3)||'%' else '0%' end  及时率  
   from hbrmw6.rms_county ty
 left join (select dt.porta_county_id,count(distinct dt.flow_id) as  zcount from  v_project_survey_data dt
 left join t_bpm_form_info fo on dt.flow_id=fo.flow_id  where  to_char(fo.send_time,'yyyy-mm-dd')>='2018-01-01'
and  fo.end_time>=to_date('2018-03-01', 'yyyy-mm-dd') and fo.end_time<=to_date('2018-03-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
and fo.app_type='platform'  and dt.project_type1='2' and dt.project_type2 in ('2','3') and dt.pexpand3='装机模式'   group by dt.porta_county_id ) kcgs on ty.int_id=kcgs.porta_county_id
 left join (select dt.porta_county_id,count(distinct dt.flow_id) as  jscount from  v_project_survey_data dt
 left join t_bpm_form_info fo on dt.flow_id=fo.flow_id  where  to_char(fo.send_time,'yyyy-mm-dd')>='2018-01-01'
and  fo.end_time>=to_date('2018-03-01', 'yyyy-mm-dd') and fo.end_time<=to_date('2018-03-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
and fo.app_type='platform'  and dt.project_type1='2' and dt.project_type2 in ('2','3') and  dt.pexpand3='装机模式'  
 and (fo.end_time-fo.send_time)<=dt.limittime   group by dt.porta_county_id ) kcjs on ty.int_id=kcjs.porta_county_id   
 where ty.city_id='43'and ty.stateflag=0
 order by  ty.nameabbr;     

[此贴子已经被作者于2018-8-16 14:49编辑过]

5 回复
#2
慧根2018-08-15 16:45
and  fo.end_time>=to_date('2018-03-01', 'yyyy-mm-dd') and fo.end_time<=to_date('2018-03-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
时间调整为
 and  fo.end_time>=to_date('2018-03-01', 'yyyy-mm-dd') and fo.end_time<=to_date('2018-03-19 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
执行便不报错 。
若调整为 and  fo.end_time>=to_date('2018-03-01', 'yyyy-mm-dd') and fo.end_time<=to_date('2018-03-20 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
还是会报错ORA-01722: 无效数字


希望哥哥姐姐能够帮我解答

#3
慧根2018-08-16 14:39
一到七月份只有在查询三月份数据的时候报“ORA-01722: 无效数字”这个错误 ,但是查询三月一日到三月十九日数据的时候不报错误。查询若有三月二十日之后便会报错。
#4
慧根2018-08-16 14:42
不知道我表达的是否足够清楚 ,真心希望有人帮我解决一下这个问题,谢谢!
#5
S4saki2019-10-29 10:40
...不是写法的问题哦,是你查询出的数据内容有问题,3月20号有脏数据这样子的
#6
放纵思想2020-06-29 08:40
3月20号 的数据肯定是问题,检查一下日期那一列吧。
1