Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Instrukcja Datetime BETWEEN nie działa w SQL Server

Czy masz czasy związane z twoimi datami? BETWEEN jest włącznie, ale po przekonwertowaniu dnia 18.10.2013 na datę otrzymuje się 18.10.2013 00:00:000.00. Wszystko, co zostanie zarejestrowane po pierwszej sekundzie 18 dnia, nie zostanie pokazane przy użyciu opcji BETWEEN, chyba że podasz wartość czasu.

Wypróbuj:

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

jeśli chcesz przeszukać cały dzień 18-go. Ustawiłem milisekundy na 998, ponieważ SQL Server pobierał w zapytaniu 2013-10-19 00:00:00:0000.

Pola SQL DATETIME mają milisekundy. Więc dodałem 999 do pola.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest DATALENGTH() w SQL Server?

  2. Usuń nagłówek kolumny z wyniku zapytania SQL Server

  3. Proste zapytanie sql DateTime

  4. Znajdź min i max dla podzbiorów kolejnych wierszy - przerw i wysp

  5. Konwertuj DateTime na rrrrMMddGGmm w T-SQL