こんにちは、みんな、
私はSQLクエリでいくつかの問題を抱えています。私の目標は、カレンダーのbox()関数からユーザー定義の日付を使用して、それらの日付範囲の間からデータを取得するように各SQL照会を変更することです。 これは、カレンダーボックスのコードです。
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()から変数を使用して、私がそれを設定しようとした方法に応じて以下のエラーのうちの1つを返します。カレンダーボックス変数は、この形式で日付を返します。"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
あなたの人々が持っているどんな推薦でも感謝されるでしょう
Oracleが正しく処理するためには、日付からタイムスタンプを削除する必要があります。
cal3 = substr(MDYHMS(cal2), 1, 10);
cal6 = substr(mdyhms(cal5), 1, 10);
あるいは、もっと細かくしたい場合は、時間を含めるための適切な日付/時刻形式を指定できます。