我的数据显示是用DBGrid显示的,连接是用adoquery,现在我添加了2个日期控件DateTimePicker1和DateTimePicker2,分别为开始时间和结束时间,我现在点查询按钮,我想数据表显示开始到结束之间的数据。现在的问题是,我数据库里的日期时间精确到了秒,2009-06-12 13:30:00.000这是数据库里存的时间,我现在不知道该怎么判断。查询代码该如何写?请大家帮帮我!

解决方案 »

  1.   

    从DateTimePicker1这里你要取的包括时间吗?还是只有日期?不论是时间还是日期都可以用FormatDateTime来格式化
      FormatDateTime('YYYY-MM-DD',DateTimePicker1.Date);
      FormatDateTime('YYYY-MM-DD HH:MM:SS',DateTimePicker1.DateTime);
    然后把格式化后的时间作为查询条件与数据库中的数据比较
      

  2.   

    正解
    楼主可以根据自己的需求用FormatDateTime格式化,格式化出来的是字符形式,不是日期格式.
      

  3.   

    where date >= :BegDate and date < dateadd(dd,1,:EndDate)
      

  4.   

    where date >= :BegDate and date < dateadd(dd,1,:EndDate)
    SQL这样写,输入参数:
    ParamByName('BegDate').AsDateTime := dtpBegDate.Date;
    ParamByName('EndDate').AsDateTime := dtpEndDate.Date;
      

  5.   

    strtodatetime(datetostr(DateTimePicker1.date)+' 00:00:00 ');
    strtodatetime(datetostr(DateTimePicker2.date)+' 23:59:59 ');
      

  6.   

    我这里提示undeclared identifier:'ParamByName'这个错误信息。这是我的代码。procedure Tddfform.btnInquClick(Sender: TObject);
    begin adoquery1.close;
     adoquery1.SQL.Clear;
     adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff');
     adoquery1.sql.add('where llrq >= BegDate and llrq<=EndDate');
     ParamByName('BegDate').AsDatetime := DateTimePicker1.date;
     ParamByName('EndDate').AsDatetime := DateTimePicker2.date;
     adoquery1.Open
    end;
      

  7.   

    ParamByName('BegDate').AsDatetime := DateTimePicker1.date; 
    ParamByName('EndDate').AsDatetime := DateTimePicker2.date; 改成
    adoquery1.parameters.ParamByName('BegDate').AsDatetime := DateTimePicker1.date; 
    adoquery1.parameters.ParamByName('EndDate').AsDatetime := DateTimePicker2.date;
      

  8.   


    照你的改了之后。那错误提示没了。不过现在有了这个提示undeclared identifier:'AsDatetime'  麻烦您了!
      

  9.   

    adoquery1.parameters.ParamByName('BegDate').AsDatetime := DateTimePicker1.date; 
    adoquery1.parameters.ParamByName('EndDate').AsDatetime := DateTimePicker2.date; 请问这里面的BegDate和EndDate不需要声明吗?