c++ - 2 天的差异:为什么选择 convert(datetime, 43279) = '2018-06-30' 和 DateTime.FromOADate(43279) = '2018-06-28'?
问题描述
我有一些使用 ADO 和其他一些 COM&OLE 技术的遗留 C++ 应用程序。
调试时我发现奇怪的事情:我的程序的某些部分有一个变量 COleDateTime(C++ 类),它存储例如 43279 值,将其显示在屏幕上并保存到 SQL 数据库。
由于在调试模式下我无法将浮点数临时转换为可读的日期时间,因此我使用了 SQL 服务器并发现了奇怪的事情:
select convert(datetime, 43279)
产生'2018-06-30'
我用谷歌搜索了一下,发现 .NET 方法
DateTime.FromOADate(43279)
产生正确且预期的“ 2018-06-28”
所以,这太不明显了!为什么 OLE 和 SQL 之间存在 2 天的日期时间浮点表示差异?
解决方案
推荐阅读
- hive - How to get start of day given a week and year number by hive?
- html - 页眉上方滚动 HTML CSS
- html - 仅选择一个选项以角度 4 显示 Id 而不是名称
- c# - 向 ng-class 发送值
- android - Android:没有互联网对话框重新启动应用程序,而不是重新加载网页
- python - 如何从 PyTorch 中的数据加载器获取整个数据集
- exec - python 3 exec() globals() 和 locals()
- numpy - 获得密集和稀疏数组的统一行为的最佳方法?
- javascript - 如何修复 TypeError:无法读取未定义 REACT 的属性“地图”
- python - 如果输入的数字介于两个不同的数字之间,我该如何打印?