Вместо динамического построения оператора SQL-вставки в виде строк, если вы используете хранимые процедуры или параметризованные запросы, вы сможете передать значение datetime в C # в качестве объекта datetime, и не будет никакого несовпадения форматов, чтобы вызвать проблемы. *
[Исправление - это работает только в SQL 2008, см. ответ gbn для действительной строки 2000/2005]
Кроме того, я считаю, что независимо от региональных настроек серверов SQL, если вы передадите дату в виде полной строки ISO 8601 , она будет обработана правильно.
1011 * Е.Г. *
2010-03-10T14:17Z
Лично я бы порекомендовал параметризованные запросы или хранимые процедуры, поскольку они также решают множество других проблем.