我假设 .NET 中的 DateTime.FromOADate 和转换为 MS SQL 中的 DateTime 的工作方式相同。
但是,给定值:41640
DateTime.FromOADate(值)返回:2014-01-01
CAST(值 AS DATETIME)返回:2014-01-03
这种预期行为是因为不同的开始日期,还是有什么地方不对?
最佳答案
这是 T-SQL 中 2014 年一月的第三天:
SELECT CAST(41640 AS DATETIME)
这是 .NET 中 2014 年一月的第一天:
DateTime dt = DateTime.FromOADate(41640)
MSDN 中记录了原因:
“零”日期是 1900-01-01
基准日,午夜,1899 年 12 月 30 日
所以 01/01/1900
和 12/30/1899
之间有两天的差异。
关于c# - DateTime.FromOADate 与 MSSQL 转换为 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18960863/