俺滴问题查询access数据库,奇怪的是查询起始时间是2010年1月1日之后的数据,就什么都查不出来了,其他时间段都正常,请教高手为什么?procedure TFMQuery.BitBtn2Click(Sender: TObject);begin
  ADOQuery1.Active:=true;
   ADOQuery1.Close;
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.add('select id as 实验编号,oiladdr as 采样地点, press as 压力,temp as 温度,testtime as 实验开始时间 from oilsample where (testtime>:p1)and(testtime<:p2) order by testtime');
   ADOQuery1.Parameters.ParamByName('p1').Value:=DateTimePicker1.DateTime;
   ADOQuery1.Parameters.ParamByName('p2').Value:=DateTimePicker2.DateTime ;
   ADOQuery1.Open;
   FMQuery.btn1.Click;end;

解决方案 »

  1.   

    ADOQuery1.Parameters.ParamByName('p1').Value:=DateToStr(DateTimePicker1.DateTime);
      

  2.   

    俺滴问题查询access数据库,奇怪的是查询起始时间是2010年1月1日之后的数据,就什么都查不出来了,其他时间段都正常,请教高手为什么?有沒直接打開ACCESS數據庫看看,2010-01-01之後確實有數據啊?
      

  3.   

    对于access,查询日期时,在日期值前后要加上‘#’符号
      

  4.   

    DateTimePicker2这个选择的是什么日期?
    还有,你有没有将如下的SQL语句直接在数据库里运行过?
    select id as 实验编号,oiladdr as 采样地点, press as 压力,temp as 温度,testtime as 实验开始时间 from oilsample where (testtime>'2010-01-01') order by testtime
      

  5.   

    DateTimePicker2 选择今天
    DateTimePicker1选择最早的时间,所有的数据全部能查询出来,奇怪的是DateTimePicker1选2010-01-01,就一个数据都出不来?
      

  6.   

    procedure TSearch_Frm.SearchDate;
    begin
      with adoq_search do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from MACNO where DateTime=:Rq');
        Parameters.ParamByName('Rq').Value:=DateToStr(edt_Tipe.Date);
        Prepared;
        Open;
      end;
    end;
    case   Combobox1.ItemIndex   of 
            1:   sqlstr:= 'select   *   from   cost   where   通话日期   between   #3-21#     and     #6-20# '; 
            2:   sqlstr:= 'select   *   from   cost   where   通话日期   between   #6-21#     and     #9-20# '; 
            3:   sqlstr:= 'select   *   from   cost   where   通话日期   between   #9-21#     and     #12-20# '; 
            end;
      

  7.   

    用这个 StrToDateTime(FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date))
    把你的日期格式转换一下看看 ,最好是转换成和你的testtime 一致的格式
      

  8.   

    DateTimePicker.Date
    DateTimePicker.Time
      

  9.   

    procedure TFMQuery.BitBtn2Click(Sender: TObject);begin
      ADOQuery1.Active:=true;
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.text:=' select id as 实验编号,oiladdr as 采样地点, press as 压力,'+
                          '   temp as 温度,testtime as 实验开始时间 from oilsample '+
                          ' where testtime between :p1 and :p2 '+
                          ' order by testtime';
      ADOQuery1.Parameters.ParamByName('p1').Value:=DateTimePicker1.DateTime;
      ADOQuery1.Parameters.ParamByName('p2').Value:=formatdatetime(shortdateformat,DateTimePicker2.DateTime)+' 23:59:59';
      ADOQuery1.Open;
      FMQuery.btn1.Click;end;注意:界面中 DateTimePicker1 DateTimePicker2 不要放反了位置;