如何将 MS SQL Date 或 DateTime 转换为 OADate?

How to convert MS SQL Date or DateTime to OADate?

我知道我们可以将 OADateTime(数字格式有时 excel 呈现给我们而不是日期时间)转换为有效的 DateTime,如下所示 -

SELECT CAST(43982 AS datetime) -2

结果为 2020-05-31 00:00:00.000.

但是我们如何在 MS 中将 DateTime 转换为 OADateTime SQL?

最简单的方法是从给定日期中减去 OADate 纪元,例如:

declare @OADateEpoch date = convert(date, '1899-12-30', 126);
declare @yourDateTime datetime = convert(date, '2020-05-31T00:00:00.000', 126);
select datediff(dd, @OADateEpoch, @yourDateTime);

其中 returns 43982.