У меня есть база данных sql server 2005 и хранимая процедура, которая принимает две даты и выполняет некоторые сравнения данных @start_date_from и @start_date_to, оба из которых имеют тип DATETIME.
Мы используем LINQ для вызова хранимых процедур из нашего кода, а перетаскивание хранимой процедуры на поверхность LINQ генерирует вызов метода, который принимает значения даты и времени, допускающие значение NULL.
Проблема, с которой я сталкиваюсь, заключается в том, что наши даты из пользовательского интерфейса вводятся как dd / MM / yyyy (мы в Австралии) и анализируются как C # DateTime.
Когда происходит вызов сохраненного процесса, кажется, что он конвертируется в дату в американском стиле. Я ищу способ предотвратить это, надеюсь, без необходимости изменять тип данных параметров в процедуре.
Я пытался использовать SET DATEFORMAT dmy в процедуре, но, похоже, это никак не отразилось, я предполагаю, что для вступления в силу ему нужно GO или что-то еще.
Я подумывал, может быть, однажды попробовал какое-нибудь классное форматирование / преобразование / приведение в сохраненный процесс, но это выглядело как последнее средство.
Полагаю, я также мог бы изменить входные параметры на varchars и поставить дату в однозначном формате.
Внутри самого процесса даты используются с ключевым словом BETWEEN (если это имеет какое-либо значение).
Так с какими другими вариантами (или с какими из перечисленных мною) я должен пойти?