我喜歡使用 JMP 交互來獲取輸入的開始和結束時間,然後使用 SQL 過濾數據表。 如果將參數 dateb 和 datee 定義為例如 '2017-10-10'、'2017-11-11' 可以正常工作,但是當使用分配的變量 dateb 和 datee 時,我沒有得到正確的過濾(空表)。
感謝您提供的任何幫助。 謝謝。
----------------------------------
defuplim =今天();
deflowlim =今天() -以天為單位( 730 );
ww =新窗戶( “選擇 yyyy-mm-dd 格式的日期” ,
<<模態,
<<返回結果,
V 列錶框(
文本框( “開始日期:” ),
str1 =號碼編輯框(
deflowlim,
10 ,
<<設置函數(
功能( {那},
低限 = str1 <<得到
)
)
),
文本框( “結束日期:” ),
str2 =號碼編輯框(
deuplim,
10 ,
<<設置函數(
功能( {這個},
uplim = str2 <<得到
),
)
),
str1 <<設置格式(格式( “yyyy-mm-dd” ) ),
str2 <<設置格式(格式( “yyyy-mm-dd” ) )
),
H 列錶框(按鈕盒( “好的” ),按鈕盒( “取消” ) ),
);
日期b =作為日期(哇[ “str1” ]);
日期 =作為日期(哇[ “str2” ]);
日期b =格式(日期b, “yyyy-mm-dd” );
日期 =格式(約會, “yyyy-mm-dd” );
dt1 =開放數據庫(
“DSN=XXX;UID=root;密碼=xxxxx;” ,
“選擇 * from xyz where date(starttime) between '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);