高手赐教,sql数据库,ado数据连接,用datetimepicker日期范围查询的问题(50分)

  • 主题发起人 主题发起人 rihua
  • 开始时间 开始时间
R

rihua

Unregistered / Unconfirmed
GUEST, unregistred user!
sql数据库,ado数据连接,需要查询数据表power里面,datetimepicker1和datetimepicker2日期之间的数据。我这么写的
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from power');
adoquery1.SQL.add('where time>:time1 and time<:time2 ');
adoquery1.parameters.paramByName('time1').value:=datetostr(datetimepicker1.date);
adoquery1.parameters.paramByName('time2').value:=datetostr(datetimepicker1.date);
adoquery1.open;
程序可以运行,不过搜索结果不对,无搜索结果,不知道该怎么写希望大家帮忙。
还有就是里面的日期查询我如果用 where ...between ..and..该怎么写,这是我第一次提问题,谢谢大家帮忙。
 
where time between :time1 and time2
 
谢谢helloqiner,where between..and..我知道怎么写了,问题这样一样和我那个写的那段一样,没有结果输出,大家怎么没人来看看,帮帮我啊,着急啊。
 
你仔细的看一下datetimepicker1后面带时间了没有!还有就是数据库在的日期参数后有没有跟时间。
 
这位兄弟,下面这段代码绝对帮你解决问题,记得发分给偶。。。
AQuery.Close;
AQuery.SQL.Clear;
AQuery.SQL.Text:=' Select * From Power where Time >= Cast(''' +DateTostr(DateTimePicker1.Date)+''' as DateTime) '
+' and Time<=Cast('''+DateTostr(DateTimePicker2.Date)+''' as DateTime) ';
AQuery.Open;
 
用楼上的方法,简单,我一直这么用
 
上述写法只能用于WIN2000如用于WIN98可能会导致系统崩溃,因为WIN2000与WIN98、95
日期格式不兼容,如想兼容,应该用DECODEDATE和ENCODEDATE对所有的日期进行处理,
转换成兼容的字符型日期格式;
 
adoquery1.Parameters.ParamByName('time1').DataType :=ftstring;
adoquery1.Parameters.ParamValues['time1']:=datetostr(datetimepicker1.date);
 
多人接受答案了。
 
后退
顶部