Полагаться на региональные настройки компьютеров на уровне SQL было бы довольно странным способом сделать это (особенно для сценария сервер / клиент, поскольку любой SQL получал бы настройку серверов). Например, вместо того, чтобы полагаться на CAST для преобразования вашей строки в дату, вы должны быть немного более конкретны, указав, в каком формате находится исходная строка. Например:
DECLARE @inputdate VARCHAR(25)
DECLARE @datetemp DATETIME
SELECT @inputdate = '13/03/2012'
SELECT CONVERT(DATETIME, @inputdate, 103) --### 103 = DD/MM/YYYY input date
SELECT @inputdate = '03/13/2012'
SELECT CONVERT(DATETIME, @inputdate, 110) --### 110 = MM/DD/YYYY input date
Обратите внимание, как две разные входные даты могут быть преобразованы в один и тот же день, сообщив SQL, в каком формате находится строка. Ваш интерфейс должен либо ограничить пользователя определенным форматом даты, либо определить региональные настройки и передать это в SQL, и SQL должен соответствующим образом реализовать правильный параметр стиля.