sql >> Databáze >  >> RDS >> Sqlserver

Dotaz na porovnání dat v SQL

Místo '2013-04-12', jehož význam závisí na místní kultuře, použijte '20130412', který je rozpoznán jako formát invariantní kultury.

Pokud chcete porovnat se 4. prosincem, napište '20131204'. Pokud chcete porovnat s 12. dubnem, měli byste napsat „20130412“.

Článek Write International Transact-SQL Statements z dokumentace SQL Server vysvětluje, jak psát příkazy, které jsou invariantní v kultuře:

Aplikace, které používají jiná rozhraní API nebo skripty Transact-SQL, uložené procedury a spouštěče, by měly používat neoddělené číselné řetězce. Například yyyymmdd jako 19980924.

UPRAVIT

Protože používáte ADO, nejlepší možností je parametrizovat dotaz a předat hodnotu data jako parametr data. Tímto způsobem se zcela vyhnete problému s formátem a získáte také výkonnostní výhody parametrizovaných dotazů.

AKTUALIZACE

Chcete-li použít formát ISO 8601 v literálu, musí být specifikovány všechny prvky. Cituji z části ISO 8601 dokumentace datetime

Chcete-li použít formát ISO 8601, musíte zadat každý prvek ve formátu. Patří sem také T, dvojtečky (:) a tečka (.), které se zobrazují ve formátu.

... zlomek druhé složky je volitelný. Časová složka je uvedena ve 24hodinovém formátu.



  1. Seznam všech spouštěčů v databázi Oracle

  2. Jak připojit databázi mySQL pomocí C++

  3. Jak zakázat omezení CHECK v SQL Server (příklady T-SQL)

  4. Vyberte 3 nejnovější záznamy, kde jsou hodnoty jednoho sloupce odlišné