在SQL中存储的格式是'12/02/2003 00:00:00',你将后面格式化成"12/01/2003"是不行的
你可以看看这个贴子:
话题614054的标题是: 日期型字段查询 (50分)
分类:数据库-文件型 友好 (2001-9-6 20:08:00)
语句如下:
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”出错提示请专家指点!
jasper (2001-9-6 21:19:00)
1 SQL使用前清空了吗?
2 日期型变量本质上是一种浮点型,查询时用=,如果一个有小时分钟秒豪秒,另一个只有年月日,怎么办呢?
kals (2001-9-6 21:37:00)
你的数据库是否SQL SERVER ,SQL SERVER的日期是有时间的,最好用
SubString(Convert(VarChar(20),DATEFIELD),1,10)转换一下再比较
Chason (2001-9-7 8:40:00)
同样的问题,我是这样来解决的:
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;
不知有否帮助?
友好 (2001-9-22 13:44:00)
多人接受答案了。
Chason-30,jasper-10,kals-10,的回答最终被接受。