Дата конвертации в число с плавающей точкой теряет два дня - PullRequest
0 голосов
/ 27 июня 2018

Доброе утро

У меня интересная ситуация:

1 июня 2018 года = 43252 как целое число 30 мая 2018 года = 43250 как целое число

Я пытаюсь преобразовать дату в первый соответствующий месяц (отчетный месяц) с помощью следующего кода:

DECLARE @InputDate DateTime, @Result  Float, @Date DateTime

Set @InputDate = '2018/06/18 23:13:05'
If isDate(@InputDate) = 0 
   BEGIN
     Set @Result = 0
   END
ELSE
  BEGIN
    Set @Date = DATEFROMPARTS(Year(@InputDate), Month(@InputDate), 1)
    Set @Result = cast (cast(@Date as datetime) as float) 
    Select @Date, @Result
  END 

Результат для @Date - «2018-06-01 00: 00: 00.000», как и ожидалось, но результат для @Result = 43250, то есть 30 мая 2018 года. Как это происходит?

...