您的位置:首页 > 数据库 > Oracle

Oracle关于统计每天数据的总和时出现无效数字问题

2017-05-16 23:10 826 查看
首先,要求是,知道这个月数据总数,但是想知道每天分别的数据总数,先上表的字段结构:

desc test1

名称            空值 类型             

------------- -- -------------- 

ID               NUMBER         

INC_DATETIME     VARCHAR2(19)   ---------------------------这个是插入时间,是varchar2格式,这个是问题关键点

RANDOM_ID        NUMBER         

RANDOM_STRING    VARCHAR2(4000) 

然后按照INC_DATETIME 查询每天的数据的综合,但是不得结果,SQL语句是:

select 

  to_char(INC_DATETIME ,'yyyyMMdd'),

  count(id) 

from 

  test1 m 

group by 

  to_char(INC_DATETIME ,'yyyyMMdd')

order by 

  to_char(INC_DATETIME ,'yyyyMMdd'); 

提示的错误为:

ORA-01722: 无效数字

01722. 00000 -  "invalid number"

*Cause:    

*Action:

显示无效数字,就是因为INC_DATETIME不是date类型,需要转换为date类型才行,最后修改一下sql语句:

select 

  to_char(to_date(m.INC_DATETIME,'yyyy-MM-dd hh24:mi:ss'),'yyyyMMdd'),

  count(id) 

from 

  test1 m 

group by 

  to_char(to_date(m.INC_DATETIME,'yyyy-MM-dd hh24:mi:ss'),'yyyyMMdd')

order by 

  to_char(to_date(m.INC_DATETIME,'yyyy-MM-dd hh24:mi:ss'),'yyyyMMdd'); 

这样子才得正确的结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐