98中access的时间查询

hliang 2004-09-02 04:03:54
使用的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#的结束时间都不能查到!


如果问题解决了,还可以加分啊!!!!!!在线等!!!!
...全文
70 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hliang 2004-09-02
谢谢!
调整日期格式为:#yyyy-MM-dd# ,问题解决,谢谢!!
回复
renjunjun 2004-09-02
#yyyy-MM-dd HH:mm:ss#
回复
hliang 2004-09-02
在2000上使用的是中国标准时间。在98下使用的是(GMT+08:00)北京、重庆、香港、乌鲁木齐。我想这两个时间应该是一样的吧。
而且,我的程序不是2000和98共同访问一个数据库,而是在98和2000下分别有数据库的。
回复
renjunjun 2004-09-02
我来总结:强烈要求广大VBer使用具有中国特色的时间表达方法
回复
huangjianyou 2004-09-02
呵,漏了一点:

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#"

^_^
回复
huangjianyou 2004-09-02
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#"

^_^
回复
of123 2004-09-02
可能是两个系统下区域设置不同。致使系统对字符串日期的解读发生歧义。#04-9-4# 是一个对称结构,用美式或国际式都是 2004-9-4。

这样:
sqlstr = "select * from comlog_table where overdatetime between #2004-9-1# and #2004-9-2 23:59:59#"
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2004-09-02 04:03
社区公告
暂无公告