我在做查询的时候,要设计到时间问题,我想查询一个时间段的记录,这个时间段是从某一个时间到现在,也就是now,那么时间变量(date)小于现在时间(now)应该怎么写?date<now和date<‘now’还有date<"now",我都用过,但都不行,怎么办?

解决方案 »

  1.   

    不知道你用什麼連接方式, 什麼數據庫, 這些都會對你的SQL產生影響;
    你如要用到函數,應該用 Now(), 加個();
      

  2.   

    你可以这样啊,如果用SQL语句查询的话
    with adoquery1 do
      begin
        Close;
        SQL.clear;
        SQL.Add('select * from 表名 where 日期 between :xDate1 and :xDate2')
        Parameters[0].value:=Date1;   //这个Date1是个变量,看你是从何处得来。
        Parameters[1].value:=Now();
        Open;
      end;
      

  3.   

    更正一下,上面的sql.add()后面漏了一个分号
      

  4.   

    楼上不是的 加不加()是一样的!
    如果你的date1由datetimepicker获得的时间参数的话
    date1>now是可以通过编译的 我试验过的!例如
    Var
    date:TdateTime;
    begin
    Label1.Caption := DateTimeToStr(Now);
    Date:=DateTimePicker1.DateTime;
    if Date>now then
    showmessage('hello');
    end;
      

  5.   

    To aiirii(ari) ;你是在误导楼主吧,加不加括号是一样的,borland为了照顾从C转到Delphi的习惯,调用一个过程加不加括号是一样的,到时会被编译器忽略,
      

  6.   

    先申明一下,我用的是bde,不是ado,应该怎么做?
      

  7.   

    with adoquery1 do
      begin
        Close;
        SQL.clear;
        SQL.Add('select * from 表名 where 日期 between :xDate1 and :xDate2')
        Parameters[0].value:=Date1;   //这个Date1是个变量,看你是从何处得来。
        Parameters[1].value:=Now();
        Open;
      end;
      

  8.   

    先申明一下,我用的是bde,不是ado,应该怎么做?我真的很急,望各位好心人快快指点!!!
      

  9.   

    我用的是bde,不是ado 没有什么区别的呀!楼上的思路已经很清楚了