Приведение C# datetime к ms sql datetime

389
21 февраля 2017, 16:03

Проект на ASP.net MVC, хочу привязать к полю текущую дату,реализую через контроллер, как можно привести datetime C# {dd.mm.yyyy} к формату ms sql datetime{yyyy-mm-dd} ?

Answer 1

Если используется доступ к базе через обьёкты, то можно сделать обработчик даты через гетер-сетер свойства:

public string dateorder { 
  get { return (_dateorder == DateTime.MinValue) ? "" : _dateorder.ToString("dd.MM.yyyy"); } 
  set { 
     _dateorder = (value == string.Empty) ? DateTime.MinValue : 
    DateTime.ParseExact(value, "dd.MM.yyyy", CultureInfo.InvariantCulture); 
} }

Вместо ParseExact можно использовать TryParseExact (это было бы лучше). У меня просто вся форма обвёрнута в try-catch.

На счёт MSSQL - поля в формат yyyy-mm-dd СУБД конвертирует в случае только если тип данных кастится средствами MSSQL и формат даты у базы никто не менял, формат можно поменять средствами MSSQL на другой https://msdn.microsoft.com/ru-ru/library/ms189491%28v=sql.120%29.aspx. Поэтому настоятельно рекомендую передавать даты в формате DateTime, что сделает ваш код более переносимым и устойчивым. Для этого вам прийдётся всего лишь запись делать параметрическим способом, что я так же очень рекомендую делать.

Вариант 2. На языке mssql можно так же явно указать формат это так

 SELECT CONVERT(VarChar, GETDATE(), 104)
 SELECT CONVERT(datetime, '31.01.2016', 104)
READ ALSO
Xamarin BOOT_COMPLETED и автоматический перезапуск

Xamarin BOOT_COMPLETED и автоматический перезапуск

Есть приложение Xamarin с премишенами:

358
Маршрутизация в ASP MVC

Маршрутизация в ASP MVC

Есть контроллер, в котором определен метод GetAllPurchaseList, при переходе на него, система ищет представление с именем GetAllPurchaseListcshtml

374
Эквиваленты ли следующие операторы?

Эквиваленты ли следующие операторы?

Допустим у меня есть инициализированная строка string sЯвляются ли следующие операторы эквивалентными в плане поведения? Генерируется ли разный...

384
Создание домена приложения и подгрузка dll

Создание домена приложения и подгрузка dll

При создании домена приложения и подгрузке dll возникает исключение FileNotFoundExcption с текстом Не удалось загрузить файл или сборку "MyLibrary, Version=10

287