当前位置:  开发笔记 > 后端 > 正文

VB6日期数据类型:精度和格式

如何解决《VB6日期数据类型:精度和格式》经验,为你挑选了1个好方法。

Date数据类型是基于Double与范围检查(最小值/最大值日期值)加上考虑时期的数据类型.换句话说,它没有什么特别之处,特别是考虑到VBA不是一种强类型语言.

如果你想到连续统一的时间(和你应该的IMO),那么a Double是一个很好的选择.双精度浮点的精度,其中一天= 1(整数)实际上是九位小数.因此,类型Double(因此类型Date)的值可以舒适地容纳亚秒值.

但是,面对的问题是,内VBA时间函数(Now,DateSerial,DateDiff,DateAdd等)具有的最小粒度1秒.如果您将它们与日期值一起存储为Double亚秒精度,您将经历四舍五入到一秒.同样为VBA6编写的用户控件等.

可以编写自己的时间函数实现,当然(我记得必须实现包装类StdDataFormat,以便读取/写入亚秒级SQL Server值而不会在VBA中转换为MS数据网格)但它将开始感觉你正在滚动自己的时态数据类型(哎哟!)



1> onedaywhen..:

Date数据类型是基于Double与范围检查(最小值/最大值日期值)加上考虑时期的数据类型.换句话说,它没有什么特别之处,特别是考虑到VBA不是一种强类型语言.

如果你想到连续统一的时间(和你应该的IMO),那么a Double是一个很好的选择.双精度浮点的精度,其中一天= 1(整数)实际上是九位小数.因此,类型Double(因此类型Date)的值可以舒适地容纳亚秒值.

但是,面对的问题是,内VBA时间函数(Now,DateSerial,DateDiff,DateAdd等)具有的最小粒度1秒.如果您将它们与日期值一起存储为Double亚秒精度,您将经历四舍五入到一秒.同样为VBA6编写的用户控件等.

可以编写自己的时间函数实现,当然(我记得必须实现包装类StdDataFormat,以便读取/写入亚秒级SQL Server值而不会在VBA中转换为MS数据网格)但它将开始感觉你正在滚动自己的时态数据类型(哎哟!)

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有