Zamiast „2013-04-12”, którego znaczenie zależy od lokalnej kultury, użyj „20130412”, który jest rozpoznawany jako niezmienny format kultury.
Jeśli chcesz porównać dane z 4 grudnia , wpisz „20131204”. Jeśli chcesz porównać z 12 kwietnia th , należy napisać „20130412”.
Artykuł Write International Transact-SQL Statements z dokumentacji SQL Server wyjaśnia, jak pisać instrukcje, które są niezmienne kulturowo:
Aplikacje korzystające z innych interfejsów API lub skryptów języka Transact-SQL, procedur składowanych i wyzwalaczy powinny używać nierozdzielonych ciągów liczbowych. Na przykład rrrrmmdd jako 19980924.
EDYTOWAĆ
Ponieważ używasz ADO, najlepszą opcją jest sparametryzowanie zapytania i przekazanie wartości daty jako parametru daty. W ten sposób całkowicie unikniesz problemu z formatem i uzyskasz korzyści z wydajności również sparametryzowanych zapytań.
AKTUALIZACJA
Aby użyć formatu ISO 8601 w literale, należy określić wszystkie elementy. Cytując z sekcji ISO 8601 dokumentacji datetime
Aby użyć formatu ISO 8601, musisz określić każdy element w formacie. Obejmuje to również T, dwukropki (:) i kropkę (.), Które są wyświetlane w formacie.
... ułamek drugiego składnika jest opcjonalny. Składnik czasu jest określany w formacie 24-godzinnym.