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

използвайте „между“ с varchar (sql сървър)

Да, в зависимост от това какво разбирате под очаквано поведение. Операторът BETWEEN ще третира тези операнди като varchars и съответно ще приложи своите правила за сравнение:

Сега виждам много потенциални проблеми, сравнявайки низове и очаквайки поведение при сравнение на дати. Не видях такива в моите тестове, но погледнете внимателно вашите данни. CONVERT връща ли 24-часово време със съответните начални нули?

Този въпрос има някои други подходи за сравняване на времена без дата, различни от преобразуването им във varchar.

Освен това внимавайте за нулеви дати, които ще накарат съответното условие WHERE да върне false (всъщност неизвестно).

В другия си въпрос посочихте, че получавате грешка. Ако е така, можете ли да го публикувате?



  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. грешка:26 - Грешка при локализиране на сървър/посочен екземпляр. (Не мога да се свържа с моята локална база данни от моя хост сървър)

  3. Изтриване на свързани редове в релация много към много

  4. Множество условия в клаузата WHERE

  5. SQL:клауза IF в клаузата WHERE