救救我吧!(100分)

  • 主题发起人 主题发起人 lixp
  • 开始时间 开始时间
L

lixp

Unregistered / Unconfirmed
GUEST, unregistred user!
var
date,date1:string;
begin
date:=datetostr(datetimepicker1.date);
date1:=datetostr(datetimepicker1.date);

query1.close;
query1.sql.clear;
query1.sql.add('select bh 编号,xm 姓名,jl 奖励,rq 日期,yy 备注 from jqtable2 where rq>='''+date+''' and rq<='''+date1+''' and jl>'+''''+'0'+''''+'order by bh' );
query1.open;
end;
以上程式为什么可以通过但却根本不查询,如果不要 rq>='''+date+''' and rq<='''+date1+''' 查询很正常。以上数据为mssql

 
什么数据库?Sql Server[?]
 
用between吧!试试!
 
请问SuperJS
between怎样用?
 
改为如下就可以了,
date:=FormatDateTime('yyyy-mm-dd', datetimepicker1.date);
date1:=FormatDateTime('yyyy-mm-dd', datetimepicker1.date);
datetostr 函数转化出来的格式与MSSQL中格式不一致,它无法正确识别此日期,
所以没有一条记录可过滤出。
 
你的字段是不是搞错了,日期的类型应该直接用日期类型的值进行比较
你的字段是字符类型的,这样比较肯定不可以的。把你的字段改为日期类型,然后比较
应该没有问题
 
代码改成这样,用参数的型式。
begin
date:=datetostr(datetimepicker1.date);
date1:=datetostr(datetimepicker1.date);

query1.close;
query1.sql.clear;
query1.sql.add('select bh 编号,xm 姓名,jl 奖励,rq 日期,yy 备注 from jqtable2 where rq>=:rq1 and rq<=:rq2 and jl>'+''''+'0'+''''+'order by bh' );
query1.ParamByName('rq1').AsDateTime:=DatetimePicker1.Date;
query1.ParamByName('rq2').AsDateTime:=DatetimePicker1.Date;
query1.open;
end;
 
yh的作法肯定行,我用过!!
 
这个问题上DELPHI有点怪,我以前也遇到过,也是偶然发现这样做就可以了。
ADOQuery.SQL.Text:='select * from 许可证信息表 where (申领日期>'+''''+DateToStr(DateTimePicker1.Date)+''''+') and (申领日期<'+''''+DateToStr(DateTimePicker2.Date)+''''+')';
这是从我用的程序拷出来的,肯定没问题。
 
接受答案了.
 
后退
顶部