各位大侠好,delphi中操作access,如何进行具体时间比较,比如说:select * from table where time<'2003-12-12 10:12:12'
     小弟不才望各位大侠指点,小弟感激不尽!!!!

解决方案 »

  1.   

    select * from table where time<'''+formatdatetime('yyyy-mm-dd hh:nn:ss',strtodatetime('2003-12-12 10:12:12'))+'''
      

  2.   

    在ACCESS中比较时间类型的数据的时候 在时间的左右加上#号就可以了
      

  3.   

    多谢 Shiyl(㊣★¤★㊣)和 angle097113(深思不解) 二位大侠指点,小弟感激不尽!!
      

  4.   

    不行,还是不行,小弟的代码为
         ADODataSet1.CommandText:='select * from 20031212 where bsj<#'+formatdatetime('yyyy-mm-dd hh:mm:ss',strtodatetime('2003-12-12 10:12:12'))+'#';
       ADODataSet1.active:=true;
       可是总是说不正常定义参数,大侠小弟我着急万分!
      

  5.   

    首先,formatdatetime()这个函数的返回值是STRING型,所以不用再加#了,
    其次,有关字符型的引号你要仔细调试。
      

  6.   

    ADODataSet1.CommandText:='select * from 20031212 where bsj<:dateandtime'
     ADODataSet1.Parameters.ParamByName('dateandtime').Value := '2003-12-12 10:12:12';
     ADODataSet1.Open;
    这样写好一点,你试试!
      

  7.   

    zhaojinghui(撒哈拉之雨的悲伤)兄,确实还是不行,望指点小弟,多谢!!!!!
      

  8.   


     ADODataSet1.Parameters.ParamByName('dateandtime').asdatetime := '2003-12-12 10:12:12';
    你把value改成asdatetime看看
      

  9.   

    好的大侠,多谢
     ADODataSet1.CommandText:='select * from 20031212 where bsj<:dateandtime';
     ADODataSet1.Parameters.ParamByName('dateandtime').Value := '2003-12-12 10:12:12';
     ADODataSet1.Open;