Приведение двойного к DateTime в SQL Server - PullRequest
0 голосов
/ 04 октября 2019

Я преобразовал свой объект Datetime из VB.Net в удвоение, используя следующий код:

Dim currentDate as DateTime = DateTime.Now
Dim newdo as Double = currentDate.ToOADate()
Console.WriteLine(newdo) // output: 43742.1551505093

Затем, если я преобразовываю следующее двойное значение в DateTime в SQL Server, он показывает мне дату, которая составляет два дня ваванс:

select cast(43742.1551505093 as datetime)

Выход для запроса: 2019-10-06 03: 43: 25.003

Ожидаемое значение: 2019-10-04 03: 43: 25,003

1 Ответ

1 голос
/ 04 октября 2019

Это похоже на формат Excel. Вы можете конвертировать, используя:

select dateadd(second, (43742.1551505093 % 1) * 24*60*60, dateadd(day, 43742.1551505093, '1899-12-30'))

К сожалению, SQL Server не поддерживает dateadd_big(), поэтому проще всего добавлять дни и секунды отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...