我用了两个TDateTimePicker控件来选择时间,在数据库来查找位于两个时间之间的记录,但不知道什么写,老是报错,哪为大哥知道,请万分感谢。我以前的SQL语句是这样写的:select * from report
where time>=DateTimePicker1.DateTime and Time <= DateTimePicker2.DateTime ,不知道怎么回事。

解决方案 »

  1.   

    Var
    SQL : String
    begin
    ...
    SQL = 'select * from report'+
          'where time>= DateTimeToStr(TimePicker1.DateTime) '+
          'and Time <= DateTimeToStr(DateTimePicker2.DateTime)';
    ...
    end;
    如果是Access则 
    Var
    SQL : String
    begin
    ...
    SQL = 'select * from report'+
          'where time>=' + '#'+ DateTimeToStr(TimePicker1.DateTime) '+
          'and Time <= ' + '#'+ DateTimeToStr(DateTimePicker2.DateTime)';
    ...
    end;
      

  2.   

    time定义了吗?还是time是其他变量??
      

  3.   

    1.time 的数据类型
    2.两个控件时间的先后
      

  4.   

    还是报错啊,不知道怎么回事,数据库用的是Accesss。
      

  5.   

    SQL := 'select * from report where DateDiff("s", [time], ''' + FormatDateTime('YYYY-MM-DD HH:NN:SS', DateTimePicker1.DateTime) + ''')<=0 and DateDiff("s", [time], ''' + FormatDateTime('YYYY-MM-DD HH:NN:SS', DateTimePicker2.DateTime) + ''')>=0';
      

  6.   

    不用Time吧,这个是不是Access里的保留字呀,我以犯这个人错,换个字段吧。
      

  7.   

    select * from report
    where time>=:fromTime and Time <= :EndTime
    parameters.parambyname('fromTime').value:=DateTimePicker1.DateTime
    parameters.parambyname('EndTime').value:=DateTimePicker2.DateTime