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

Jak mogę wykluczyć górny limit w BETWEEN sql server?

Tak, użyjesz >= i < zazwyczaj dla zapytań o zakres czasu/dat

Alternatywnie możesz odjąć 3 milisekundy od górnego limitu, aby uzyskać najwyższą wartość datetime (nie nowszą datetime2) dla tego dnia (xxx 23:59.59.997 )

SELECT * FROM   log_file
WHERE  submission_date BETWEEN 1323714600000 AND 1323801000000-3

Uwaga:odjęcie 1 byłoby prawdopodobnie w porządku, jeśli wszystko jest milisekundami...

Edytuj, przykład dlaczego 3ms

SELECT 
    DATEADD(millisecond, -1, '20111214'), -- 2011-12-14 00:00:00.000
    DATEADD(millisecond, -2, '20111214'), -- 2011-12-13 23:59:59.997
    DATEADD(millisecond, -3, '20111214')  -- 2011-12-13 23:59:59.997

Co ciekawe, czy na pewno jest północ?
Przez 1323813600 sekund otrzymuję 2011-12-13 22:00:00

Na serwerze SQL:

SELECT DATEADD(second, 1323813600, '19700101') 

W MySQL

SELECT FROM_UNIXTIME(1323813600)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać klucz podstawowy autoincrement w serwerze sql za pomocą nvarchar?

  2. Używanie wyrażenia regularnego w ramach procedury składowanej

  3. Tworzenie bazy danych w SQL Server 2012, skrypt i użycie w 2008?

  4. Wymień zapytania uruchomione na serwerze SQL

  5. Porównaj plany wykonania w SQL Server