我試圖執行下面的查詢的最後一天,但之間得到這個錯誤:TO_DATE ORA-01847個月日必須在1個月
to_date ora-01847 day of month must be between 1 and last day of month
查詢是檢查日期和時間的overlaping在兩個不同的表
table1 (emp_num1 number,start_date1 date,start_time1 varchar2,end_date1 date,end_time2 varchar2)
table2(emp_num2 number,start_date2 date,start_time2 varchar2,end_date2 date,end_time2 varchar2)
select *
from table1 t1
,table2 t2
where t1.emp_num 1 = t2.emp_num2
and to_timestamp(to_char(start_date1,'DD-MON-YYYY')||' '||NVL(start_time1,'00:00'),'DD-MON-YYYY HH24:MI')
between
to_timestamp(to_char(start_date2,'DD-MON-YYYY')||' '||NVL(start_time2,'00:00'),'DD-MON-YYYY HH24:MI')
and
to_timestamp(to_char(end_date2,'DD-MON-YYYY')||' '||NVL(end_time2,'00:00'),'DD-MON-YYYY HH24:MI')
or
to_timestamp(to_char(end_date1,'DD-MON-YYYY')||' '||NVL(end_time1,'00:00'),'DD-MON-YYYY HH24:MI')
between
to_timestamp(to_char(start_date2,'DD-MON-YYYY')||' '||NVL(start_time2,'00:00'),'DD-MON-YYYY HH24:MI')
and
to_timestamp(to_char(end_date2,'DD-MON-YYYY')||' '||NVL(end_time2,'00:00'),'DD-MON-YYYY HH24:MI')
產生的誤差上述查詢:
to_date ora-01847 day of month must be between 1 and last day of month
我試圖運行查詢
select to_timestamp(to_char(start_date1,'DD-MON-YYYY')||' '||NVL(start_time1,'00:00'),'DD-MON-YYYY HH24:MI') from table1
沒有遇到任何錯誤。
是否有可能四個日期字段中的一個具有NULL值? – 2013-03-07 17:08:20
嘗試用NULL代替'start_date1'的測試查詢:我敢打賭它給出了同樣的錯誤。 – wallyk 2013-03-07 17:15:07
日期字段是必填字段...因此,沒有任何表格具有空日期文件夾 – rocky 2013-03-07 17:30:37