Вместо «2013-04-12», значение которого зависит от местной культуры, используйте «20130412», который распознается как инвариантный формат языка.
Если вы хотите сравнить с декабря 4 - го , вы должны написать «20131204». Если вы хотите сравнить с апреля 12 - го , вы должны написать «20130412».
В статье « Написание международных операторов Transact-SQL» из документации SQL Server объясняется, как писать операторы, которые не зависят от языка и региональных параметров:
Приложения, использующие другие API-интерфейсы или сценарии Transact-SQL, хранимые процедуры и триггеры, должны использовать неразделенные числовые строки. Например, ггггммдд как 19980924.
РЕДАКТИРОВАТЬ
Поскольку вы используете ADO, лучшим вариантом является параметризация запроса и передача значения даты в качестве параметра даты. Таким образом, вы полностью избегаете проблемы с форматированием и получаете преимущества в производительности параметризованных запросов.
ОБНОВИТЬ
Чтобы использовать формат ISO 8601 в литерале, необходимо указать все элементы. Цитата из раздела ISO 8601 документации datetime
Чтобы использовать формат ISO 8601, вы должны указать каждый элемент в формате. Это также включает T, двоеточия (:) и точку (.), Которые показаны в формате.
... доля второго компонента не обязательна. Компонент времени указывается в 24-часовом формате.