Замість "2013-04-12", значення якого залежить від місцевої культури, використовуйте "20130412", який визнано форматом, інваріантним до культури.
Якщо ви хочете порівняти з грудня 4 - го , ви повинні написати «20131204». Якщо ви хочете порівняти з квітня 12 - го , ви повинні написати «20130412».
Стаття Написання міжнародних виписок Transact-SQL з документації SQL Server пояснює, як писати твердження, які інваріантні до культури:
Додатки, які використовують інші API або сценарії Transact-SQL, збережені процедури та тригери, повинні використовувати нерозділені числові рядки. Наприклад, yyyymmdd як 19980924.
РЕДАГУВАТИ
Оскільки ви використовуєте ADO, найкращим варіантом є параметризація запиту та передача значення дати як параметра дати. Таким чином ви повністю уникнете проблеми з форматом і отримаєте також переваги продуктивності параметризованих запитів.
ОНОВЛЕННЯ
Щоб використовувати формат ISO 8601 у буквальному виразі, потрібно вказати всі елементи. Цитую з розділу ISO 8601 документації про дату та час
Щоб використовувати формат ISO 8601, потрібно вказати кожен елемент у форматі. Сюди також входять Т, двокрапки (:) та крапка (.), Які відображаються у форматі.
... частка другого компонента необов’язкова. Часова компонента вказана у 24-годинному форматі.