sql >> Database >  >> RDS >> Sqlserver

Bevat MS SQL Server tussen de bereikgrenzen?

De BETWEEN-operator is inclusief.

Van online boeken:

BETWEEN geeft TRUE als resultaat als de waarde vantest_expression groter is dan of gelijk is aan de waarde van begin_expression en kleiner dan of gelijk aan de waarde vanend_expression.

DateTime-voorbehoud

NB:Met DateTimes moet je voorzichtig zijn; als alleen een datum wordt gegeven, wordt de waarde vanaf middernacht op die dag genomen; om te voorkomen dat u tijden binnen uw einddatum mist of dat u de gegevens van de volgende dag om middernacht in meerdere bereiken herhaalt, moet uw einddatum 3 milliseconden vóór middernacht zijn op de dag die volgt op uw tot op heden. 3 milliseconden, want minder dan dit en de waarde wordt de volgende dag naar boven afgerond.

bijv. om alle waarden binnen juni 2016 te krijgen, moet u het volgende uitvoeren:

where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')

d.w.z.

where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'

datetime2 en datetimeoffset

Als u 3 ms van een datum aftrekt, bent u kwetsbaar voor ontbrekende rijen uit het 3 ms-venster. De juiste oplossing is ook de eenvoudigste:

where myDateTime >= '20160601' AND myDateTime < '20160701'


  1. 2ndQuadrant Deutschland – Special Training Opening Koopje

  2. SQL Server:Database zit vast in herstelstatus

  3. SQL SELECT INTO-instructie

  4. De Adaptive Join Threshold