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

Как мога да изключа горната граница в BETWEEN sql сървър

Да, бихте използвали >= и < обикновено за заявки за време/диапазон от дати

Като алтернатива можете да извадите 3 милисекунди от горната граница, за да получите най-високата стойност за дата и час (не по-нова дата и час2) за този ден (xxx 23:59.59.997 )

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

Забележка:изваждането на 1 вероятно би било добре, ако всичко е милисекунди...

Редактиране, пример защо 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

И интересно, сигурни ли сте, че е полунощ?
За 1323813600 секунди получавам 2011-12-13 22:00:00

На SQL Server:

SELECT DATEADD(second, 1323813600, '19700101') 

В 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. Грешка при закръгляване на SQL Server, даване на различни стойности

  2. Как да активирате ad hoc разпределени заявки

  3. Промяна на именувания екземпляр на SQL Server на екземпляр по подразбиране

  4. Актуализиране на пощенски акаунт в база данни (SSMS)

  5. Каква е целта на поставянето на 'N' пред параметрите на функцията в TSQL?