是什么数据库如果是Access数据库,时间前后要加#

解决方案 »

  1.   

    如果是SQL server
    改为:SqlStr:=SQLStr+' and time>="'+DateToStr(DateTimePicker1.Date)+
                      '" and time<="'+DateToStr(DateTimePicker2.Date)+'"';
      

  2.   

    是什么数据库如果是MSSQL数据库,时间前后要加'注意用''代替'SqlStr:=SQLStr+' and time>='''+DateToStr(DateTimePicker1.Date)+
                      ''' and time<='''+DateToStr(DateTimePicker2.Date)+''';
      

  3.   

    SqlStr:=SQLStr+" and time>="'+DateToStr(DateTimePicker1.Date)+
                      "' and time<='"+DateToStr(DateTimePicker2.Date)"'";
      

  4.   

    SqlStr:=SQLStr+'and (time>=date1) and (time<=:date2)';
    with query1 do
      begin
        close;
        sql.text:=SqlStr;
        ParamByName('date1').Value:=DateTimePicker1.Date;
        ParamByName('date2').Value:=DateTimePicker2.Date;
        open;
      end;
      

  5.   

    SqlStr:=SQLStr+'and (time>=date1) and (time<=:date2)';
    :date1(上面少了个":")
      

  6.   

    楼上说的不妥,因为时间作为条件,是可选项,我不能保证用户每次都把时间作为条件,所以上面的写法,我不能接受,
     along603(阿三) 的写法,编译都过不去
    renzhm(戴尔飞) (  ) 上一道提你的回答,我很满意,但是这次你的方法不行,时间前后加 ' ,oracle编译出错,说不是一个有效的月份
      

  7.   

    恰好天天在写这个东西SqlStr:=SQLStr+' and time>=TO_DATE('''+DateToStr(DateTimePicker1.Date)+'',''yyyy-mm-dd'') and time<=TO_DATE('''+DateToStr(DateTimePicker2.Date)+'',''yyyy-mm-dd'')';最好:
    ... AND time BETWEEN TO_DATE(...) AND TO_DATE(...)