안녕 모두,
나는 SQL 쿼리에 어려움을 겪고있다. 필자의 목표는 calendar box () 함수의 사용자 정의 날짜를 사용하여 각 SQL 쿼리를 수정하여 해당 날짜 범위 사이에서 데이터를 가져 오는 것입니다. 다음은 calenderbox의 코드입니다.
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);
그리고 이것은 SQL 쿼리에 대한 내 코드입니다. 코드가 어디에 나뉘어 졌는지 강조했습니다.
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");이 형식으로 날짜를 수동으로 입력하면 정상적으로 실행됩니다.
day <= To_Date('07/17/2017', 'MM/DD/YYYY')
calenderbox ()의 변수를 사용하여 설정하는 방법에 따라 다음 오류 중 하나를 반환합니다. 달력 상자 변수는 "07/17/2017 2:07:14 PM"형식으로 날짜를 반환합니다.
[Oracle][ODBC][Ora]ORA-01843: not a valid month
[Oracle][ODBC][Ora]ORA-01830: date format picture ends before converting entire input string
여러분이 추천 해 주신 모든 제안은 감사하겠습니다.
오라클이 날짜를 올바르게 처리하려면 날짜에서 타임 스탬프를 잘라야합니다.
cal3 = substr(MDYHMS(cal2), 1, 10);
cal6 = substr(mdyhms(cal5), 1, 10);
또는 좀 더 세분화하려는 경우 시간을 포함하도록 적절한 날짜 / 시간 형식을 제공 할 수 있습니다.