Excel (по умолчанию) использует систему дат 1900 года.Это просто означает, что дата 1 января 1900 года имеет истинное числовое значение 1, 2 января 1900 года имеет значение 2 и т. Д. Эти значения называются «последовательными значениями» в Excel, и именно эти последовательные значения позволяют нам использовать даты врасчеты.
Код для преобразования:
DECLARE @SerialDate FLOAT;
SET @SerialDate = 43830.99931;
SELECT CAST(@SerialDate - 2 AS DATETIME);
возврат значения даты и времени:
2019-12-31 23:59:00.383
Возможно, вы заметили -2
в приведении,Это потому, что Excel, из-за проблем с 29 февраля 1900 года и инклюзивности дат начала / окончания.(1900-01-01 - это день 1, а не день 0, а 1900 не был високосным годом, но Excel рассчитывает его неверно). Мы должны вычесть 2. Подробности по этому вопросу можно найти здесь .