私は、JMP interative を使用して入力の開始時刻と終了時刻を取得し、SQL を使用してデータ テーブルをフィルタリングするのが好きです。パラメーター dateb および datee は、たとえば「2017-10-10」、「2017-11-11」として定義されている場合は正常に機能しますが、割り当てられた変数 dateb および datee を使用すると、正しいフィルター処理が行われません (空のテーブル)。
ご協力いただければ幸いです。ありがとう。
------------------------------------
defuplim =今日();
deflowlim =今日() -数日後( 730 );
ww =新しいウィンドウ( "yyyy-mm-dd 形式で日付を選択してください" ,
<<モーダル,
<<戻り結果、
V リストボックス(
テキストボックス( 「開始日:」 )、
str1 =数値編集ボックス(
デフローリム、
10,
<< SetFunction (
関数({that},
lowlim = str1 << get
)
)
)、
テキストボックス( 「終了日:」 )、
str2 =数値編集ボックス(
デフリム、
10,
<< SetFunction (
関数({this},
uplim = str2 << get
)、
)
)、
str1 <<フォーマットを設定( Format ( "yyyy-mm-dd" ) )、
str2 <<フォーマットを設定( Format ( "yyyy-mm-dd" ) )
)、
H リストボックス(ボタンボックス( 「OK」 )、ボタンボックス( 「キャンセル」 ))、
);
dateb =日付として(ww[ "str1" ]);
datee =日付として(ww[ "str2" ]);
dateb =フォーマット(dateb, "yyyy-mm-dd" );
date = format (date, "yyyy-mm-dd" );
dt1 =データベースを開く(
「DSN=XXX;UID=ルート;PWD=xxxxx;」 、
"Select * from xyz where date(starttime) 'dateb' と 'datee' の間" , "TMP"
);
ジムさん、本当にありがとう。それは完璧に機能しました。
この変更が機能するかどうかを確認してください
defuplim = Today();
deflowlim = Today() - In Days( 730 );
ww = New Window( "Pick Your Dates in yyyy-mm-dd format",
<<MODAL></MODAL>
文字列の日付をデータベースが理解できるように日付に変換し直す必要があります。これが Oracle の場合は、次のようなステートメントが必要です。
sql_statement = evalinsert(
"Select *
from xyz
where date(starttime) between to_date('^dateb^', 'YYYY-MM-DD')
and to_date('^datee^', 'YYYY-MM-DD') ");
dt1 = Open Database("DSN=XXX;UID=root;PWD=xxxxx;", sql_statement);