在FORM上放了四个Datetimepicker,其中两个是DATE,两个是TIME,怎样通过TQuery对ORACLE数据表的符合时间的所有记录进行查询呢,
急呀

解决方案 »

  1.   

    把要查询的时间组合起来:var
      StartDateTime,EndDateTime:string;beginStartDateTime:=FormatDateTime('yyyy-mm-dd',StartDatetimepicker1.Date)+' '+FormatDateTime('hh:mm:ss',StartDatetimepicker2.Date);EndDateTime:=FormatDateTime('yyyy-mm-dd',EndDatetimepicker3.Date)+' '+FormatDateTime('hh:mm:ss',EndDatetimepicker4.Date);
      

  2.   

    谢谢这位大哥的回答.
    能给我写一个SQL语句吗,表为jc_sx_info,所查的时间字段是jcst,用Tquery,
    查询符合一段时间内的所有记录,后台是ORACLE;
      

  3.   

    sSQL:='select * from jc_sx_info where jcst between{可能这个单词写错了}'+yearof(Datetimepicker1.date)+' and '+ yearof(Datetimepicker2.date);
    这样是查询在datetimepicker1和datetimepicker2两个时间段之间的记录
      

  4.   

    首先谢谢了,在Delphi中好像没有用yearof这样表示的吧,没有见过呀,而且是4个datetimepicker,时间需要合并,而且上面的SQL句子写的也有问题,有时间格式表示的,这样没会运行吧,
      

  5.   

    strStart := '#2005-12-1 00::00::00#';
       strEnd := '#2005-12-10 23::59::59#';
       strSql := 'select * from table_name where printtime between ' + strStart + ' and ' + strEnd;
      

  6.   

    楼上的开始时间和结束时间写法不能在DELPHI中用吧,应该用DateTimeFromt(......)吧
      

  7.   

    var
      sSQL,StartDateTime,EndDateTime:string;beginStartDateTime:=FormatDateTime('yyyy-mm-dd',StartDatetimepicker1.Date)+' '+FormatDateTime('hh:mm:ss',StartDatetimepicker2.Date);EndDateTime:=FormatDateTime('yyyy-mm-dd',EndDatetimepicker3.Date)+' '+FormatDateTime('hh:mm:ss',EndDatetimepicker4.Date);
    sSQL:='select * from jc_sx_info where jcst between '''+StartDateTime+''' and '''+ EndDatetime +'''';'=====
    我用D7
    没见过DateTimeFromt这个东东~~