acess里日期查询问题,用delphi处理;可查询总是不准确,我在数据库里选择日期是文本类型,则查询不准确,如果选择日期类型则查询时候报错。如下我的代码:
var
  date1,date2:string;
begin
  date1:= FormatDateTime('yyyy-mm-dd',rzdatetimeedit1.Date);
  date2:= FormatDateTime('yyyy-mm-dd',rzdatetimeedit2.Date);
  with ADO_xz do
  begin
    close;
    sql.Clear ;
    if rsk.Checked= false then
      sql.Add('select * from yongshui where 缴费日期 between '''+date1+'''and '''+date2+'''and 是否缴费 =''Yes''order by 缴费日期') ;
    if rsk.Checked= true then
      sql.Add('select * from yongshui where 缴费日期 between '''+date1+'''and '''+date2+'''and 是否缴费 =''Yes''and 收款人='''+trim(rzcombobox3.Text)+'''order by 缴费日期') ;
    open;
  end;
帮我看看这样写查询可行啊??那里错了没有,如果缴费日期我在access里设置日期型,就报错,如果我设置文本型,则查询出来的不准确,有的日期是2007-04-12 有的是 2007-4-12这样的格式。
拜托啊。

解决方案 »

  1.   

    1:首先日期抱错你的日期格式有问题FormatDateTime( 'yyyy/mm/dd ',rzdatetimeedit1.Date); 试一下,好长时间都没有用access了
      

  2.   

    acess 里日期查询要加#  
      

  3.   

    Access日期和日期时间在查询语句处理上是有区别:
      1、日期:
         strSqlDate := '#'+FormatDateTime('yyyy-mm-dd',rzdatetimeedit1.Date)+'#';
      2、日期带时间:
         strSqlDate := ''''+FormatDateTime('yyyy-mm-dd hh:nn:ss',rzdatetimeedit1.Date)+'''''';     
      

  4.   

    晕,日期带时间的怎么多了那么多引号
    strSqlDate := ''''+FormatDateTime('yyyy-mm-dd hh:nn:ss',rzdatetimeedit1.Date)+''''; 
      

  5.   

    acess   里日期查询要加#!   
    acess   里日期查询要加#!   
    acess   里日期查询要加#!
      

  6.   

    这样看看,数据库设成日期型
    var 
        date1,date2:string; 
    begin 
        date1:=   FormatDateTime( 'yyyy-mm-dd ',rzdatetimeedit1.DataTime); 
        date2:=   FormatDateTime( 'yyyy-mm-dd ',rzdatetimeedit2.DataTime); 
        with   ADO_xz   do 
        begin 
            close; 
            sql.Clear   ; 
            if   rsk.Checked= false then 
                sql.Add( 'select * from yongshui  where   缴费日期 between   :BeginDate and :EndDate   and   是否缴费   = ''Yes '' order   by   缴费日期 ')   ;
             Parameters.ParamByname('BeinDate').value:=rzdatetimeedit1.datetiem;
             Parameters.ParamByName('EndDate').value:=rzDatetimeedit2.datetime;
      .........
      

  7.   

    日期用#分隔符
    如果带时间用yyyy-mm-dd hh::mm::ss格式也可以
      

  8.   

    where (CreateTime between #'+formatDatetime('mm/dd/yyyy',DateTimePicker1.Time)+'# and #'+formatdatetime('mm/dd/yyyy',datetimepicker3.time)+'#)