我用ADO建立数据库连接,使用sql语句时有问题,就是对日期约束时不能正确处理,如下SELECT * FROM 表1 WHERE  出生年月 > 1985-1-1所产生的结果不正确SELECT * FROM 表1 WHERE  出生年月 = 1985-1-1这个就找不到那个记录,确实有这个记录的,是不是出了什么问题?我是用recordset在open的时候直接执行sql语句的。

解决方案 »

  1.   

    win98下用这个C:\WINDOWS\SYSTEM\regsvr32  MSDATGRD.OCX2000下用这个
    regsvr32 MSDATGRD.OCX只是目录不同而已试试啦
      

  2.   

    SELECT * FROM 表1 WHERE  出生年月 > 1985-1-1
    在sql server中你那样写可能能执行查询,得到预期的结果
    在access中,得到的是不正确的结果。
    在access中,使用类似 
    SELECT * FROM 表1 WHERE  出生年月 > #1985-1-1#
    的方式,能得到正确的结果俺认为,最好的方式是使用datediff函数SELECT * FROM 表1 WHERE  datediff("d",date1,date2) > nnn
      

  3.   

    哦,原来这样,不过这个不太明SELECT * FROM 表1 WHERE  datediff("d",date1,date2) > nnndatediff是什么?还有其他的数据库,如sybase等有这样的问题吗?
      

  4.   

    datediff是时间比较函数,
    第一个参数 "d" 表示 比较“天”
    第二、三个参数是时间
      

  5.   

    SELECT * FROM 表1 WHERE  出生年月 > '1985-1-1'