地域の文化に応じて意味が異なる「2013-04-12」の代わりに、文化不変形式として認識されている「20130412」を使用してください。
12月4日と比較したい場合は、「20131204」と書く必要があります。 4月12日と比較したい場合は、「20130412」と書く必要があります。
SQLServerのドキュメントの「WriteInternationalTransact-SQLStatements」の記事では、カルチャに依存しないステートメントの記述方法について説明しています。
他のAPI、またはTransact-SQLスクリプト、ストアドプロシージャ、トリガーを使用するアプリケーションでは、区切りのない数値文字列を使用する必要があります。たとえば、yyyymmddは19980924です。
編集
ADOを使用しているため、最適なオプションは、クエリをパラメーター化し、日付値を日付パラメーターとして渡すことです。このようにして、フォーマットの問題を完全に回避し、パラメータ化されたクエリのパフォーマンス上の利点も得られます。
更新
リテラルでISO8601形式を使用するには、すべての要素を指定する必要があります。 datetimeのドキュメントのISO8601セクションから引用するには
ISO 8601形式を使用するには、形式の各要素を指定する必要があります。これには、形式で表示されるT、コロン(:)、およびピリオド(。)も含まれます。
...2番目のコンポーネントの端数はオプションです。時間コンポーネントは24時間形式で指定されます。