Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Oracle error: ORA-01839: date not valid for month specified

OK guys, first of all, I have checked many websites about this error and, unfortunately, none of them helped me. I have the simple following query:

select * from (   
       select to_date(cal.year || cal.month || cal.day, 'yyyymmdd') as datew, 
              cal.daytype as type
       from vw_calendar cal)
where datew > sysdate;

When I try to execute the entire query, this error shows up:

ORA-01839: date not valid for month specified

If I execute only the query:

select to_date(cal.year || cal.month || cal.day, 'yyyymmdd') as datew, 
       cal.daytype as type
from vw_calendar cal;

It worked absolutely fine. If you want to view the results of the query: http://pastebin.com/PV95g3ac

I checked the days of the month like day 31 or leap year and everything seems correct. I don't know what to do anymore. My database is a Oracle 10g and I tried to execute the query on SQL Developer and PL/SQL Developer. Same error on both IDE.

like image 777
humungs Avatar asked Feb 13 '23 00:02

humungs


1 Answers

Actually the issue is some months have 30 days and some have 31, so the query which you are forming, it is trying to get 31st day of that month which is invalid and hence the error. For Example:

it may be trying for date like: 31-NOV-2016 which is not correct, NOV has only 30 days.

like image 160
geek123 Avatar answered Feb 15 '23 01:02

geek123