sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik de bovengrens in TUSSEN sql-server uitsluiten?

Ja, u gebruikt >= en < meestal voor vragen over tijd/datumbereik

U kunt ook 3 milliseconden van de bovengrens aftrekken om de hoogste datetime (niet nieuwere datetime2) waarde voor die dag te krijgen (xxx 23:59.59.997 )

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

Opmerking:1 aftrekken zou waarschijnlijk goed zijn als alles milliseconden is...

Bewerken, voorbeeld van waarom 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

En interessant genoeg, weet je zeker dat dit middernacht is?
Gedurende 1323813600 seconden krijg ik 2011-12-13 22:00:00

Op SQL Server:

SELECT DATEADD(second, 1323813600, '19700101') 

Op MySQL

SELECT FROM_UNIXTIME(1323813600)


  1. Postgresql BESTELLEN OP spaties

  2. Byte[]-array invoegen als blob in Oracle Database krijgt ORA-01460:niet-geïmplementeerde of onredelijke conversie gevraagd

  3. Primaire sleutel extraheren uit MySQL in PHP

  4. Hoe kan ik slechts één rij voor een tabel toestaan?