现在我要查找某个时间段的记录进行查询,时间来自DateTimePicker1,请问如何写。
语句在SQL中能够执行,但是在delphi中不能执行。
//=========================================
ADOQry_Grid.SQL.Add('and a.shijiaorq between '''+DateToStr(DateTimePicker1.Date)+''' and '''+DateToStr(DateTimePicker1.Date)+'' );
//========================================

解决方案 »

  1.   

    ADOQry_Grid.SQL.Add('and a.shijiaorq between '''+DateToStr(DateTimePicker1.Date)+''' and '''+DateToStr(DateTimePicker1.Date)+'' 这里缺个');
      

  2.   

    还有就是Datatostr是Delphi的函数,SQl不认识,你最好把DateToStr(DateTimePicker1.Date)换成参数。
      

  3.   

    对不起!说错了!Datatostr没到SQL里面去!
      

  4.   

    你要不传参数,要不直接赋值;都可以的;
     ADOQry_Grid.SQL.Add('and a.shijiaorq between*'+DateToStr(DateTimePicker1.Date)+'*and *'+DateToStr(DateTimePicker1.Date));  
        注:"*"处代表空格,不要用''表示,很容易错的.
      

  5.   

    ADOQry_Grid.SQL.Add('and a.shijiaorq between*'+DateToStr(DateTimePicker1.Date)+'*and *'+DateToStr(DateTimePicker1.Date));  中的a.shijiaorq 应该把它的日期取出来,看你用什么数据库,用什么函数取咯!
      

  6.   

    ADOQry_Grid.SQL.Add('and a.shijiaorq >='''+formatdatetime('yyyy-mm-dd',datetimepicker1.Date)+'');
    ADOQry_Grid.SQL.Add('and a.bencirq<='''+formatdatetime('yyyy-mm-dd',datetimepicker2.Date)+'');
    //============
    上面的怎么样???
      

  7.   

    adoquery1.SQL.Add('select * from table1 ');
    adoquery1.sql.aDD('where shijianrq>=:Aa1 and shijianrq<=:Aa2');
    adoquery1.Parameters.ParamByName('Aa1').ASdateTime:=DateTimePicker1.Date;
    adoquery1.Parameters.ParamByName('Aa1').ASdateTime:=DateTimePicker2.Date;
    adoquery1.Open;
      

  8.   

    adoquery1.SQL.Add('select * from 表名');
    adoquery1.sql.aDD('where 时间1>=:data1 and 时间2<=:data2');
    adoquery1.Parameters.ParamByName('data1').ASdateTime:=DateTimePicker1.Date;
    adoquery1.Parameters.ParamByName('data2').ASdateTime:=DateTimePicker2.Date;
    adoquery1.Open;
      

  9.   

    我用了楼上两位的方法
    但是出错
    //===================
    [Error] Unit1.pas(39): Undeclared identifier: 'ASdateTime'
    //===================
    请问为什么?
      

  10.   

    adoquery1.active:=false;
    adoquery1.SQL.Add('select * from 表名');
    adoquery1.sql.aDD('where 时间1>=:data1 and 时间2<=:data2');
    adoquery1.Parameters.ParamByName('data1'):=DateTimePicker1.Date;
    adoquery1.Parameters.ParamByName('data2'):=DateTimePicker2.Date;
    adoquery1.active:=true;
    这样就差不多了,试试看
      

  11.   

    adoquery1.active:=false;
    adoquery1.SQL.Add('select * from 表名');
    adoquery1.sql.aDD('where 时间1>=:data1 and 时间2<=:data2');
    adoquery1.Parameters.ParamByName('data1'):=DateTimePicker1.Date;
    adoquery1.Parameters.ParamByName('data2'):=DateTimePicker2.Date;
    adoquery1.active:=true
    ===========================

    adoquery1.Parameters.ParamByName('data1'):=DateTimePicker1.Date;adoquery1.Parameters.ParamByName('data2'):=DateTimePicker2.Date;
    中的DateTimePicker1.Date改为datatostr(DateTimePicker1.Date)
    我也是正在查相关的资料,刚刚看到的答案,正在试。回头试好了,再联系
      

  12.   

    我试了一下,这样写不会有问题ADOQry_Grid.SQL.Add('and a.shijiaorq<='''+DateToStr(DateTimePicker1.Date)+''' and a.shijiaorq>='''+DateToStr(DateTimePicker1.Date)+'''');
      

  13.   

    ' and a.shijiaorq between :std and :etd 'self.adoquery1.parameters.parambyname('std').value :=datetostr(self.datetimepicker1.date);
    ..
      

  14.   

    这么简单问题,还问,上面真是热闹,如果复杂问题大家还这样积极吗?
    有本事的进下面这个问题;
    http://expert.csdn.net/Expert/topic/2288/2288203.xml?temp=.2813227