select * from  Achievement where 承担人=:xmjlname and 项目编号=:xmbh and 清单编号=:qdbh
and 竣工日期 >= str(year(getdate()) - 3,4) + str(month(getdate())*100+day(getdate()),4) and datediff(dd,竣工日期,getdate())>0请问,上面这句应怎么改写,非常谢谢

解决方案 »

  1.   

    access里面,如果日期要作为查询条件的话,得加#,如:
    where field1>#2008-12-18#
      

  2.   

    datediff(dd,竣工日期,getdate())>0
    这句改成
    竣工日期>getdate()
    好了
      

  3.   

    select * from  Achievement where 承担人=:xmjlname and 项目编号=:xmbh and 清单编号=:qdbh
    and 竣工日期 >= str(year(now()) - 3,4) + str(month(now())*100+day(now()),4) and datediff(dd,竣工日期,now())>0 
      

  4.   

    不好意思上面说的都不完全对。我知道在ACCESS里不支持 getdate()函数。。可是按照   SmallHand 说的那样改还是不行。。有语法错误请大家再帮帮忙。。
      

  5.   

    select * from  Achievement where 承担人=:xmjlname and 项目编号=:xmbh and 清单编号=:qdbh
    and 竣工日期 >= str(year(now()) - 3) + str(month(now())*100+day(now())) and datediff(dd,竣工日期,now())>0 
      

  6.   

    竣工日期 >= str(year(getdate()) - 3,4) + str(month(getdate())*100+day(getdate()),4) and datediff(dd,竣工日期,getdate())>0 
    ---------
    看了头晕~~~~
    不过,既然access不支持那些函数,就别为难人家了
    把那些计算在Delphi中完成,将最终结算结果传入作为参数。
      

  7.   

    呵呵对于SQL转ACCESS还是有些不熟悉。。最后我还是在程序里面判断不过刚开始还没反应过来可以这样做谢谢大家的帮忙