我要查询某时间段的记录,
我写的程序如下,但运行不了,还望大虾指教!……
with adoquerysech do
begin
close;
sql.Clear;
sql.Add('select * from 货单表 where 供方名称=:edit2 ');
sql.Add('and 进货日期>=:date3 and 进货日期<=:date4'); //从date3到date4之间的记录
Parameters.ParamByName('date3').value:=datetimepicker3.Date;
Parameters.ParamByName('date4').value:=datetimepicker4.Date;
parameters.ParamByName('edit2').value:=edityiban.Text;
try
open; //运行到此出错!!??
except
end;
……
出错信息如下:
---------------------------
Debugger Exception Notification
---------------------------
Project jsc.exe raised exception class EOleException with message '标准表达式中数据类型不匹配。'. Process stopped. Use Step or Run to continue.
----------------------我知道可能是在变量date3和date4设置时错了,但怎么改呀!!~~~~~~~
我写的程序如下,但运行不了,还望大虾指教!……
with adoquerysech do
begin
close;
sql.Clear;
sql.Add('select * from 货单表 where 供方名称=:edit2 ');
sql.Add('and 进货日期>=:date3 and 进货日期<=:date4'); //从date3到date4之间的记录
Parameters.ParamByName('date3').value:=datetimepicker3.Date;
Parameters.ParamByName('date4').value:=datetimepicker4.Date;
parameters.ParamByName('edit2').value:=edityiban.Text;
try
open; //运行到此出错!!??
except
end;
……
出错信息如下:
---------------------------
Debugger Exception Notification
---------------------------
Project jsc.exe raised exception class EOleException with message '标准表达式中数据类型不匹配。'. Process stopped. Use Step or Run to continue.
----------------------我知道可能是在变量date3和date4设置时错了,但怎么改呀!!~~~~~~~
sql.Add('and format(进货日期,''YYYY-MM-DD'')>=:date3 and format(进货日期,''YYYY-MM-DD'')<=:date4'); //从date3到date4之间的记录
Parameters.ParamByName('date3').value:=FormatDateTime('YYYY-MM-DD',datetimepicker3.Date);
Parameters.ParamByName('date4').value:=FormatDateTime('YYYY-MM-DD',datetimepicker4.Date);
PARAMETERS。PATAMBYNAME(‘DATE3’)。VALUE:=F0RMATDATETIEM(‘YYYY-MM-DD’,DATETIMEPI,KER3。DATE);
如果是Access,就不行;
采用CONVERT函数,具体可以看“SQL QUERY”中的帮助。
NQ.ParamByName('JSJ').AsDateTime:= nmm_tdEnd;
Parameters.ParamByName('date3').AsDatetime:=datetimepicker3.Date;
Parameters.ParamByName('date4').AsDatetime:=datetimepicker4.Date;
Parameters.ParamByName('date3').value:=datetimepicker3.DateTime;
Parameters.ParamByName('date4').value:=datetimepicker4.DateTime;
这样真的搞定!哈哈……不过真的想不通,我要比较的只是Tdate型的日期,
为什么要用Tdatetime才能和他匹配呢??
一定又是微软access的问题!
哎!总算搞定!!:)