我喜欢使用 JMP interative 获取输入开始和结束时间,然后使用 SQL 过滤数据表。 参数 dateb 和 datee 如果定义为例如“2017-10-10”、“2017-11-11”则工作正常,但是当使用分配的变量 dateb 和 datee 时,我没有得到正确的过滤(空表)。
我感谢您能提供的任何帮助。 谢谢。
------------------------------------------------
defuplim =今天();
去流极限=今天()-几天内(第730章);
WW =新窗户( “以 yyyy-mm-dd 格式选择日期” ,
<<莫代尔,
<<返回结果,
V 列表框(
文本框( “开始日期:” ),
str1 =数字编辑框(
去流限,
10 ,
<<设置函数(
功能( {那},
低限 = str1 <<得到
)
)
),
文本框( “结束日期:” ),
字符串2 =数字编辑框(
德福林,
10 ,
<<设置函数(
功能( {这},
上行= str2 <<得到
),
)
),
字符串1 <<设置格式(格式( “年-月-日” ) ),
字符串2 <<设置格式(格式( “年-月-日” ) )
),
H 列表框(按钮盒( “好的” ),按钮盒( “取消” ) ),
);
日期b =截至日期(WW[ “str1” ]);
约会对象 =截至日期(WW[ “str2” ]);
日期b =格式(日期, “年-月-日” );
约会对象 =格式(约会对象, “年-月-日” );
dt1 =开放数据库(
“DSN=XXX;UID=root;PWD=xxxxx;” ,
“从 xyz 中选择 *,其中日期(开始时间)在‘dateb’和‘datee’之间” , “三甲酚”
);
看看这个修改是否有效
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);