两天差异:为什么选择convert(datetime,43279)=';2018-06-30';和DateTime.FromOADate(43279)=&x27;2018-06-28';? 我有一些传统的C++应用程序,使用ADO和其他一些COM&OLE技术。

两天差异:为什么选择convert(datetime,43279)=';2018-06-30';和DateTime.FromOADate(43279)=&x27;2018-06-28';? 我有一些传统的C++应用程序,使用ADO和其他一些COM&OLE技术。,c++,sql,.net,datetime,ole,C++,Sql,.net,Datetime,Ole,在调试过程中,我发现了一件奇怪的事情:我的程序的某些部分有一个COleDateTime变量(C++类),它存储,e。g、 ,43279值,将其显示在屏幕上并保存到SQL数据库 因为在调试模式下,我无法将浮点转换为可读的日期时间,所以我使用了SQL server并发现了奇怪的事情: 选择convert(日期时间,43279)生成“2018-06-30” 我在谷歌上搜索了一下,找到了.NET方法 DateTime.FromOADate(43279)生成正确且预期的“2018-06-28” 所以,这太

在调试过程中,我发现了一件奇怪的事情:我的程序的某些部分有一个COleDateTime变量(C++类),它存储,e。g、 ,43279值,将其显示在屏幕上并保存到SQL数据库

因为在调试模式下,我无法将浮点转换为可读的日期时间,所以我使用了SQL server并发现了奇怪的事情:

选择convert(日期时间,43279)
生成“2018-06-30”

我在谷歌上搜索了一下,找到了.NET方法

DateTime.FromOADate(43279)
生成正确且预期的“2018-06-28”


所以,这太不明显了!为什么OLE和SQL之间的DATE时间浮动存在2天的差异?< /P>这里我不认为C++标签是合适的。@ SKAEF,因为FROMADADET零是1899年12月30日(),而SQL DATE时间在1900—01-01 00:00:2天差: