如果start_date为字符,则无许转换,如为date,则如下:
select * from table
where (substr(to_char(start_date,'YYYYMMDD'),1,4) NOT BETWEEN '1900' AND '2004') OR
(substr(to_char(start_date,'YYYYMMDD'),5,2) NOT BETWEEN '01' AND '12') OR
(substr(to_char(start_date,'YYYYMMDD'),7,2) NOT BETWEEN '01' AND '31')如果能选出,然后再delete,该条件没有选出形如‘20041031’这样的错误,稍改下就可以
select * from table
where (substr(to_char(start_date,'YYYYMMDD'),1,4) NOT BETWEEN '1900' AND '2004') OR
(substr(to_char(start_date,'YYYYMMDD'),5,2) NOT BETWEEN '01' AND '12') OR
(substr(to_char(start_date,'YYYYMMDD'),7,2) NOT BETWEEN '01' AND '31')如果能选出,然后再delete,该条件没有选出形如‘20041031’这样的错误,稍改下就可以
'2004023
--------
20040230说明已经查出‘20040230’是个无效的日期了