sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg udelukke øvre grænse i BETWEEN sql server

Ja, du ville bruge >= og < typisk for tids-/datointervalforespørgsler

Alternativt kan du trække 3 millisekunder fra den øvre grænse for at få den højeste datetime (ikke nyere datetime2) værdi for den pågældende dag (xxx 23:59.59.997 )

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

Bemærk:at trække 1 fra ville sandsynligvis være OK, hvis alt er millisekunder...

Rediger, eksempel på hvorfor 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

Og interessant nok, er du sikker på, at det er midnat?
I 1323813600 sekunder får jeg 2011-12-13 22:00:00

På SQL Server:

SELECT DATEADD(second, 1323813600, '19700101') 
 

På MySQL

SELECT FROM_UNIXTIME(1323813600)
 


  1. HikariCP 1.4.0 MBean InstanceNotFoundException

  2. SQL DELETE for begyndere

  3. Sådan sikkerhedskopieres MySQL-database i PHP?

  4. Vælg den maksimale værdi fra to tabeller