Проект на ASP.net MVC, хочу привязать к полю текущую дату,реализую через контроллер, как можно привести datetime C# {dd.mm.yyyy} к формату ms sql datetime{yyyy-mm-dd} ?
Если используется доступ к базе через обьёкты, то можно сделать обработчик даты через гетер-сетер свойства:
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)
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости