关于时间比较的问题

unix123 2000-03-14 09:59:00
我在VB编程中遇到一个很奇怪的问题,我从Sql Server中取出的datetime
类型的数据放在Date类型的变量中,例如
dim tmp1 as date
dim tmp2 as date
dim int1 as integer
tmp1=rs.fields("starttime")
int1=rs.fields("period")
rs.movenext
tmp2=rs.fields("starttime")
if tmp1+int1/86400 =tmp2 then
...
end if
但我发现有时明明通过msgbox观察到数值相等,可它就是返回false,
不知道是什么原因,其实我应用的角度就是要把数据库中时间连续的
记录进行合并,假如有三条满足合并条件的记录,用此方法判断第一
第二条时ok,但判断第一第三条却不行(判断第一第三条时我已经把
第一第二条的时长做了累加),望高手指点,谢谢!!
...全文
136 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooler 2000-03-15
  • 打赏
  • 举报
回复
sql server中的DATETIME字段精确到了毫秒级,
如果你需要比较到秒或秒以上,可以使用FORMAT函数进行格式化,如:
FORMAT(DATE,"YYYYMMDD")
然后使用字符串的比较函数直接比较
929 2000-03-14
  • 打赏
  • 举报
回复
在SQL SERVER中DATETIME精度很高,应该是精确到毫秒。估计,你在比较时认为只精确到分或秒。所以实际比较时会出现不等的现象。可以把DATETIME的值转换成SMALLDATETIME或在程序中对时间进行处理。也可以象比较实数那样在满足一定范围的情况下,认为相等。这样比较就可以了。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧