Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Заявка за сравняване на дати в SQL

Вместо „2013-04-12“, чието значение зависи от местната култура, използвайте „20130412“, което се разпознава като формат с инвариантна култура.

Ако искате да сравните с 4 декември, трябва да напишете „20131204“. Ако искате да сравните с 12 април, трябва да напишете „20130412“.

Статията Write International Transact-SQL Statements от документацията на SQL Server обяснява как да напишете изрази, които са инвариантни на културата:

Приложенията, които използват други API или Transact-SQL скриптове, съхранени процедури и тригери, трябва да използват неразделените числови низове. Например yyyymmdd като 19980924.

РЕДАКТИРАНЕ

Тъй като използвате ADO, най-добрият вариант е да параметризирате заявката и да предадете стойността на датата като параметър за дата. По този начин напълно избягвате проблема с форматирането и получавате предимствата на производителността и на параметризираните заявки.

АКТУАЛИЗИРАНЕ

За да използвате формата на ISO 8601 в литерал, всички елементи трябва да бъдат посочени. За да цитирам секцията по ISO 8601 от документацията на datetime

За да използвате формата ISO 8601, трябва да посочите всеки елемент във формата. Това включва също T, двоеточия (:) и точката (.), които са показани във формата.

... частта от втория компонент не е задължителна. Компонентът за време е посочен в 24-часов формат.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да ускорите своя SQL сървър с помощта на мониторинг на производителността на базата данни

  2. Прости функции на SQL Server за решаване на проблеми от реалния свят

  3. Временната таблица на Sql Server изчезва

  4. Зареждане на SQL Express от WiX?

  5. Преобразувайте UTC милисекунди в DATETIME в SQL сървър