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

Операторът Datetime BETWEEN не работи в SQL Server

Имате ли часове, свързани с вашите дати? BETWEEN включва, но когато конвертирате 2013-10-18 в дата, тя става 2013-10-18 00:00:000.00. Всичко, което е регистрирано след първата секунда на 18-то число, няма да се показва с BETWEEN, освен ако не включите времева стойност.

Опитайте:

SELECT 
* 
FROM LOGS 
WHERE CHECK_IN BETWEEN 
    CONVERT(datetime,'2013-10-17') 
    AND CONVERT(datetime,'2013-10-18 23:59:59:998')

ако искате да търсите целия ден на 18-ти. Зададох милисекунди на 998, защото SQL Server изтегляше 2013-10-19 00:00:00:0000 в заявката.

Полетата SQL DATETIME имат милисекунди. Затова добавих 999 към полето.



  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 Server

  2. Как да напиша UTF-8 знаци с помощта на групово вмъкване в SQL Server?

  3. SQL Server 2008 Високо натоварване на процесора

  4. Добавяне на множество параметризирани променливи към база данни в C#

  5. SQL Server 2008:ИЗБЕРЕТЕ ЗА АКТУАЛИЗАЦИЯ