我在Edit输入日期格式的字符串'2003-8-21‘然后用以下代码查询数据库中的数据,为何查询不到?
With DM.AQ_Rk DO
Begin
sql.clear
sql.add('Select * from Detail_rk where Rkssj='''+edit1.text+'''');
DM.AQ_Rk.open;
end;
是不是日期格式问题,我的开发环境为‘D6+SQL SERVER 2000'
...全文
39222打赏收藏
在DELPHI中日期查询的SQL语句该怎样写?
我在Edit输入日期格式的字符串'2003-8-21‘然后用以下代码查询数据库中的数据,为何查询不到? With DM.AQ_Rk DO Begin sql.clear sql.add('Select * from Detail_rk where Rkssj='''+edit1.text+''''); DM.AQ_Rk.open; end; 是不是日期格式问题,我的开发环境为‘D6+SQL SERVER 2000'
sql.add('Select * from Detail_rk where Rkssj=#'+edit1.text+'# ');
或者
sql.add('Select * from Detail_rk where Rkssj='''+edit1.text+'''');
或者用access的话
sql.add('Select * from Detail_rk where Rkssj=cdate('+edit1.text+')');
或者用mssql的话
sql.add('Select * from Detail_rk where Rkssj=cast('+edit1.text+' as datetime) ');
应该都可以的。
可以用maskedit,先将它的掩码设为时间形式,在EDITMASK属性中,然后直接查询啊!我们的一个大工程中查询时间都是这么做的啊!
With DM.AQ_Rk DO
Begin
sql.clear
sql.add('Select * from Detail_rk where Rkssj='''+maskedit1.text+'''');
DM.AQ_Rk.open;
end;
with query1 do
begin
close;
sql.clear;
sql.add('select * from detail_rk where rkssj>=cast(:dd as datetime) and rkssj<cast(:dd as datetime)+1;
query1.parambyname('dd').asstring:=trim(edit1.text);
open;
end;
不可能把?我一直使用dickeybird888(于伟刚) 的做法。我觉得这是最好的,屡试不爽!!
query1.sql.add('select * from detail_rk where rkssj=:Asj');
query1.prepared;
query1.ParamByName('Asj').asdatetime:=strtodatetime(edit1.text);
query1.close;
query1.sql.clear;
query1.sql.add('select * from detail_rk where rkssj=:Asj');
query1.ParamByName('Asj').asdatetime:=strtodatetime(edit1.text);
query1.Open;