使用的2000的access数据库如下连接数据库:
    Set G_ConnServer = New ADODB.Connection
    With G_ConnServer
        .Mode = adModeUnknown
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Jet OLEDB:Database Password") = "welcome"
        .Open "Data Source=" & App.path & "\" & "management"
    End With然后这么查询:
    dim sqlstr As String '查询语句
    sqlstr = "select * from comlog_table where overdatetime between #04-9-1# and #04-9-2 23:59:59#"
    Set logRec = New ADODB.Recordset
    logRec.CursorLocation = adUseClient
    logRec.Open sqlstr, G_ConnServer, adOpenStatic, adLockOptimistic实际数据库中记录的时间是overdatetime =#04-9-2 14:20:12#
也就是说上面的查询肯定能查到记录,但是实际上在2000下没有问题,但是在98下查询不到!!
修改上述查询为:
    sqlstr = "select * from comlog_table where overdatetime between #04-9-4# and #04-9-5 23:59:59#"
却能在98中查找到overdatetime =#04-9-2 14:20:12#的数据,早于#04-9-5#的结束时间都不能查到!
如果问题解决了,还可以加分啊!!!!!!在线等!!!!

解决方案 »

  1.   

    可能是两个系统下区域设置不同。致使系统对字符串日期的解读发生歧义。#04-9-4# 是一个对称结构,用美式或国际式都是 2004-9-4。这样:
    sqlstr = "select * from comlog_table where overdatetime between #2004-9-1# and #2004-9-2 23:59:59#"
      

  2.   

    sqlstr = "select * from comlog_table where overdatetime between #2004-9-1# and #2004-9-2 23:59:59#"或sqlstr = "select * from comlog_table where overdatetime>=#2004-9-1# and overdatetime<=#2004-9-2 23:59:59#"^_^
      

  3.   

    呵,漏了一点:sqlstr = "select * from comlog_table where overdatetime between #2004-9-1 00:00:00# and #2004-9-2 23:59:59#"或sqlstr = "select * from comlog_table where overdatetime>=#2004-9-1 00:00:00# and overdatetime<=#2004-9-2 23:59:59#"^_^
      

  4.   

    我来总结:强烈要求广大VBer使用具有中国特色的时间表达方法
      

  5.   

    在2000上使用的是中国标准时间。在98下使用的是(GMT+08:00)北京、重庆、香港、乌鲁木齐。我想这两个时间应该是一样的吧。
     而且,我的程序不是2000和98共同访问一个数据库,而是在98和2000下分别有数据库的。
      

  6.   

    谢谢!
    调整日期格式为:#yyyy-MM-dd# ,问题解决,谢谢!!