Если ваш proc принимает дату в качестве параметра datetime, то вы мало что можете сделать, чтобы проверить, что желаемый формат - это ddmmyyyy, а не mmddyyyy. Все зависит от того, как пользователь ввел дату и как она была передана в SQL.
Например: на веб-странице я мог бы добавить параметр, подобный этому
command.Parameters.AddWithValue("@mydate",mydateVar.ToString("dd/MM/yyyy"));
OR
command.Parameters.AddWithValue("@mydate",mydateVar.ToString("MM/dd/yyyy"));
И SQL просто вставит то, что ему дано, если строка может быть приведена к дате правильно. Он не будет знать формат, который вы хотите использовать, поэтому он попытается привести его к системному формату по умолчанию.
Решение, которое я использую, хотя оно может быть неприменимо в вашей ситуации, состоит в том, чтобы пользователи вводили все даты независимо от того, какой у вас интерфейс в формате dd-MMM-yyyy. Затем я могу быть уверен в формате, прежде чем вставить в БД. Я использую этот формат везде, чтобы сохранить его одинаковым во всем приложении.