sql >> Database teknologi >  >> RDS >> Sqlserver

Forespørg om sammenligning af datoer i SQL

I stedet for '2013-04-12', hvis betydning afhænger af den lokale kultur, skal du bruge '20130412', som er anerkendt som det kulturinvariante format.

Hvis du vil sammenligne med 4. december, skal du skrive '20131204'. Hvis du vil sammenligne med 12. april, skal du skrive '20130412'.

Artiklen Write International Transact-SQL Statements fra SQL Servers dokumentation forklarer, hvordan man skriver sætninger, der er kulturinvariante:

Programmer, der bruger andre API'er eller Transact-SQL-scripts, lagrede procedurer og triggere, skal bruge de usparerede numeriske strenge. For eksempel, ååååmmdd som 19980924.

REDIGER

Da du bruger ADO, er den bedste mulighed at parametrere forespørgslen og sende datoværdien som en datoparameter. På denne måde undgår du formatproblemet fuldstændigt og opnår også ydeevnefordelene ved parametriserede forespørgsler.

OPDATERING

For at bruge ISO 8601-formatet i et bogstav, skal alle elementer angives. For at citere fra ISO 8601-afsnittet i datetimes dokumentation

For at bruge ISO 8601-formatet skal du angive hvert element i formatet. Dette inkluderer også T, kolonerne (:) og punktum (.), der vises i formatet.

... brøkdelen af ​​anden komponent er valgfri. Tidskomponenten er angivet i 24-timers format.



  1. SQLite fælder og faldgruber

  2. Opdel kolonne i flere rækker i Postgres

  3. Opdater flere tabeller i SQL Server ved hjælp af INNER JOIN

  4. Forbindelsen mislykkedes:Adgang nægtet for brugeren 'root'@'localhost' (ved hjælp af adgangskode:JA) fra php-funktionen