我喜欢使用 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);