Привет всем,
Подскажите, pls, где подкрутить MS Sql что-бы изменить формат даты с "yyyy-MM-dd" на "dd.MM.yyyy".
Пробовал SET DATEFORMAT dmy, SET LANGUAGE 'Russian' — на выводимые данные не влияет.
Проблема проявляется при редактировании дат в приложении на ASP.NET v2: в поле редактирования дата локализуется в формат "dd.MM.yyyy", но при записи даты в таком формате в базу происходит ошибка. Если задать дату в формате "yyyy-MM-dd", то всё работает.
Спасибо за внимание
Здравствуйте, Latunskiy, Вы писали:
L>Привет всем,
L>Подскажите, pls, где подкрутить MS Sql что-бы изменить формат даты с "yyyy-MM-dd" на "dd.MM.yyyy".
L>Пробовал SET DATEFORMAT dmy, SET LANGUAGE 'Russian' — на выводимые данные не влияет.
L>Проблема проявляется при редактировании дат в приложении на ASP.NET v2: в поле редактирования дата локализуется в формат "dd.MM.yyyy", но при записи даты в таком формате в базу происходит ошибка. Если задать дату в формате "yyyy-MM-dd", то всё работает.
L>Спасибо за внимание
Для записи надо использовать "универсальные" способы текстового представления даты
http://www.sql.ru/faq/faq_topic.aspx?fid=109
Здравствуйте, tpg, Вы писали:
tpg>Для записи надо использовать "универсальные" способы текстового представления даты http://www.sql.ru/faq/faq_topic.aspx?fid=109
Спасибо за ссылку — теперь понятно, что по части Ms Sql, что-то подстроить не удастся, но похоже, что-это ADO.NET 2 тупит: параметры запроса были как DateTime и он пихал из в Sql не в том формате. А если сделать их строковыми, перехватывать запись и перекодировать — то всё работает:
protected void dvEditAppendix_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
{
e.NewValues["BeginDate"] = DateTime.Parse(e.NewValues["BeginDate"].ToString()).ToString("yyyy-MM-dd");
e.NewValues["EndDate"] = DateTime.Parse(e.NewValues["EndDate"].ToString()).ToString("yyyy-MM-dd");
}
Ok, пойду к .NET-овцам выяснять.