Когда я устанавливаю значение переменной datetime
, день и месяц переключаются.
Например:
declare @date datetime = '2017-12-02 14:56:24.000'
select datepart(month,@date)
Результат должен быть 12, но это 2. Проблема существует только на SQL Server 2017. Тот же код на 2016 возвращает 12.
DATETIME
и вместо этого использовать тип данныхDATETIME2(n)
, представленный в SQL Server 2008. Этот тип данных НЕ показывает такое же поведение - дата и время всегда правильно интерпретируются так, как вы ожидаете. - person marc_s   schedule 02.12.2017DATETIME2(3)
вместоDATETIME
РАБОТАЕТ просто работает — протестировано на SQL Server 2014, 2016 и 2017. Везде одинаковое поведение - person marc_s   schedule 03.12.2017