«Преобразование типа данных символа в тип данных даты и времени приводило к значению даты и времени вне диапазона. Оператор был прерван».
Дата дате не в диапазоне, принятом SQL DateTime. Какую дату вы пытаетесь разобрать? У меня эта ошибка для некоторых действительно ранних дат (например, 1/15/103). Даты хранятся в тиках с произвольной начальной точки.
Точка старта для .net является 1/1/0001
Начальной точкой для SQL является 1/1/1753
Я не уверен, что конечные значения. Попробуйте запустить их и сравнить. Любая трассировка кода или сценарий консоли.
DateTime netDate = DateTime.MinValue;
SqlDateTime sqlDate = SqlDateTime.MinValue; DateTime netMaxDate = DateTime.MaxValue;
SqlDateTime sqlMaxDate = SqlDateTime.MaxValue;
Прочитайте, что все остальные сказали о параметризации запросов.
Просто интересная записка; Если ваш формат имеет следующую форму: YYYY-MM-DD HH: MM: SS (например, 2009-08-12 12:27:50), SQL Server всегда будет анализировать его правильно, независимо от ваших региональных настроек. –
Посмотрите, почему параметры являются вашим другом: http://stackoverflow.com/questions/1263125/how-does-sql-query-parameterisation-work/1263142#1263142 – Eric