以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  比较时间的大小问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=78284)

--  作者:zhangchi96
--  发布时间:2015/12/6 12:35:00
--  比较时间的大小问题

有两个表【外部数据表A】【内部数据表B】,结构相同,都有列“存盘时间”,日期时间型,列属性为DateTime

 

1、把外部数据表加载到【外部数据表A】,然后通过SQL命令,保存到本机的mdb 文件中,

 

2、用Merge命令,把mdb文件的数据合并到【内部数据表B】

 

3、代码:

Dim gzbz1 As DateTime 

Dim gzbz2 As DateTime  

gzbz1 = DataTables("内部数据表A").Compute("Max(存盘时间)", " ")

gzbz2 = DataTables("外部数据表B").Compute("Max(存盘时间)", " ")

Dim X As Integer  返回两个时间的比较结果

If gzbz1 > gzbz2 then

X = 0

Elseif gzbz1 = gzbz2 then

   X = 0

Elseif gzbz1 < gzbz2 then

    X = 1

End if


4、返回x的结果始终都是1 ,请问这是什么原因,两个时间的值的都是2015-12-06 09:47,在不要求太精准的情况,在时间相差1分钟内,都能返回 X = 0


--  作者:大红袍
--  发布时间:2015/12/6 15:07:00
--  

弹出值看看。

 

msgbox(gzbz1 & " " & gzbz2)


--  作者:zhangchi96
--  发布时间:2015/12/6 16:49:00
--  
弹出了 都是 2015-12-06 09:47
会不会和EXCEL 里 一样 ,用 差额 再取个 近似值 ,可以吗?(我不知道怎么减法)
[此贴子已经被作者于2015/12/6 16:50:01编辑过]

--  作者:大红袍
--  发布时间:2015/12/6 16:52:00
--  

弹出

 

msgbox(gzbz1 & " " & gzbz2)

 

msgbox(gzbz1 = gzbz2)

 

msgbox(format(gzbz1, "yyyyMMddHHmmss") = format(gzbz2, "yyyyMMddHHmmss"))


--  作者:zhangchi96
--  发布时间:2015/12/6 17:01:00
--  
三个结果 :

2015-12-06 09:47  2015-12-06 09:47
false
true

--  作者:大红袍
--  发布时间:2015/12/6 17:24:00
--  
那你就用最后一个判断