Я бы лично использовал функцию DATETIMEFROMPARTS
- кажется, самый чистый способ, без преобразования каждого DATETIME
в строку, а затем возиться с перехватыванием и склеиванием строки снова и преобразованием обратно в DATETIME
... .
Попробуйте это:
SELECT
Id, ChangedDate,
DATETIMEFROMPARTS(2017, MONTH(ChangedDate), DAY(ChangedDate),
DATEPART(HOUR, ChangedDate), DATEPART(MINUTE, ChangedDate),
DATEPART(SECOND, ChangedDate), DATEPART(MILLISECOND, ChangedDate))
FROM
dbo.YourTableNameHere