Ciao a tutti,
Ho qualche difficoltà con una query SQL. Il mio obiettivo è utilizzare le date definite dall'utente dalla funzione calendar box() per modificare ogni query sql per estrarre i dati tra quegli intervalli di date. Questo è il codice per il calendario:
Cancel = "0";
New Window( "ZFG Cycle Start Date",
<<Modal,
cal1 = Calendar Box(),
cal1 << Show Time(0);
Button Box( "OK", cal2 = cal1 << get date;),
Button Box( "Cancel", Cancel = "1") );
cal3 = MDYHMS(cal2);
If(Cancel =="1", Stop());
New Window( "ZFG Cycle End Date",
<<Modal,
cal4 = Calendar Box(),
cal4 << show time(0);
Button Box( "OK", cal5 = cal4 <<get date;),
Button Box( "Cancel", Cancel = "1") );
If(Cancel =="1", Stop());
cal6 = mdyhms(cal5);
E questo è il mio codice per la query SQL. Ho evidenziato dove il codice si interrompe:
sql_script = evalinsert(
"SELECT *
FROM OHT_MOVES_FLATFILE
Where day <= To_Date('^cal6^', 'M/D/Y')
and day >= To_Date('^cal3^', 'MDY')
and vehicle_type = 'FOUP'
and dst_tool= ANY('ZFG1_17C01','ZFG1_17C02', 'ZFG1_17W01', 'ZFG_17W02')
and rownum <100000
Order by request_time");Funziona bene quando inserisco manualmente una data in questo formato:
day <= To_Date('07/17/2017', 'MM/DD/YYYY')
Utilizzando la variabile da calenderbox(), restituisce uno dei seguenti errori a seconda di come ho provato a configurarlo. La variabile della casella del calendario restituirà la data in questo formato: "17/07/2017 14:07:14"
[Oracle][ODBC][Ora]ORA-01843: not a valid month
[Oracle][ODBC][Ora]ORA-01830: date format picture ends before converting entire input string
Qualsiasi consiglio voi gente sarebbe apprezzato
Dovrai eliminare il timestamp dalla tua data affinché Oracle possa elaborarlo correttamente.
cal3 = substr(MDYHMS(cal2), 1, 10);
cal6 = substr(mdyhms(cal5), 1, 10);
In alternativa, se vuoi essere più granulare, puoi fornire il formato data/ora appropriato per includere l'ora.