日期型字段查询(50分)

  • 主题发起人 主题发起人 友好
  • 开始时间 开始时间

友好

Unregistered / Unconfirmed
GUEST, unregistred user!
语句如下:
SQL:='Select * from 业务表';
SQL1:=' where 日期 =:MyDate';
SQL:=SQL+SQL1;
ywADOQuery.SQL.Add(SQL);
ywADOQuery.Parameters.paramvalues['MyDate'].asdate:=StrToDate(jhtimeDBEdit.EditText);
ywADOQuery.open;

MyDate为ftDate类型
运行出现“Variant does not reference an automation object”出错提示请专家指点!
 
1 SQL使用前清空了吗?
2 日期型变量本质上是一种浮点型,查询时用=,如果一个有小时分钟秒豪秒,另一个只有年月日,怎么办呢?
 
你的数据库是否SQL SERVER ,SQL SERVER的日期是有时间的,最好用
SubString(Convert(VarChar(20),DATEFIELD),1,10)转换一下再比较
 
同样的问题,我是这样来解决的:

if datam.qrydata.ParamCount < 1 then
//可能在其他查询中把参数去掉,因而要检测,加上。
begin
datam.qrydata.Params.CreateParam(ftdate, 'Todate', ptUnknown);
datam.qrydata.Params.CreateParam(ftdate, 'Fromdate', ptUnknown);
end;
datam.qrydata.ParamByName ('ToDate').asdate:=Todate;
datam.qrydata.ParamByName ('FromDate').asdate:=Fromdate;
datam.qrydata.sql.text:='select * from data where dyrq <=:ToDate and dyrq>=:FromDate';
datam.qrydata.Prepare ;
datam.qrydata.open;

不知有否帮助?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
964
import
I
I
回复
0
查看
790
import
I
后退
顶部