Времена хранения хранятся в том же универсальном формате. Затем вы вытащили это обратно в свой отчет или приложение и отформатировали в соответствии с локали пользователя или соответствующим образом указанным вами форматом.
Поле datetime и/или объект не имеют формата.
Если вы хотите, чтобы вставить текущую дату в поле даты и времени (за исключением части времени), используйте следующее:
insert into [MyTable] ([DateField])
values (cast(floor(cast(getdate() as float)) as datetime)
Это сбросит часы, минуты и секунды до «0»
Если вы хотите, чтобы вставить параметр даты, то вы можете использовать следующие:
cast(floor(cast(@dateParam as float)) as datetime)
Если вы просто хотите, чтобы изменить то, как он отформатирован в наборе результатов, вы можете использовать:
SET DATEFORMAT DMY
В верхней части вашего утверждения, то, всякий раз, когда вы применяете его как varchar, вам не нужно указывать формат.
Помните, что базы данных должны даты не форматирование, ваш интерфейс должен справиться с этим
Почему вы преобразования? Вставить? Или для отображения в пользовательском интерфейсе/отчете –
Если вы хотите получить DateTime, вы будете получать DateTime, а не формат или wath так никогда. – Serge