关于adoquery日期类型动态参数与TDateTimePicker的问题(50分)

  • 主题发起人 主题发起人 zealothasu
  • 开始时间 开始时间
Z

zealothasu

Unregistered / Unconfirmed
GUEST, unregistred user!
后台sql server 2000,用adoquery连接
sql 语句为
Select sum(lmd3104) jmsum
from jm_data..lmd31
where sl_date between :startdate and :enddate

然后使用2个TDateTimePicker控件
写以下代码
with qryJmSum do
begin
Close;
Parameters.ParamByName('startdate').Value := dtpStartDate.Date;
Parameters.ParamByName('enddate').Value := dtpEndDate.Date;
Open;
ReportArray[1] := Fields[0].AsInteger;
end
与直接在sql query 中出来的结果不一致
sql query 语句
Select sum(lmd3104)
from jm_data..lmd31
where sl_date between ‘2003/4/20’ and ’2003/4/26‘

如果把赋值改为
Parameters.ParamByName('startdate').Value := DateToStr(dtpStartDate.Date);
Parameters.ParamByName('enddate').Value := DateToStr(dtpEndDate.Date);
则结果一致
是什么原因?
我的profile坏了,不能看到delphi中执行的语句
 
Parameters.ParamByName('startdate').asdate := dtpStartDate.Date;
Parameters.ParamByName('enddate').asdate := dtpEndDate.Date;

 
沒有asdate的
 
ParamByName('startdate').asdate := dtpStartDate.Date;
ParamByName('enddate').asdate := dtpEndDate.Date;
 
拜托
to银雨辰

TParameters类型是没有asdate这样的Method,试一试再说好不好
 
with qryJmSum do
begin
Close;
Parameters.ParamByName('startdate').Value := Trunc(dtpStartDate.Date);
Parameters.ParamByName('enddate').Value := Trunc(dtpEndDate.Date);
Open;
ReportArray[1] := Fields[0].AsInteger;
end
 
多人接受答案了。
 
后退
顶部