1. 程式人生 > >Oracle關於統計每天資料的總和時出現無效數字問題

Oracle關於統計每天資料的總和時出現無效數字問題

首先,要求是,知道這個月資料總數,但是想知道每天分別的資料總數,先上表的欄位結構:

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'); 

這樣子才得正確的結果