sql >> Database teknologi >  >> RDS >> PostgreSQL

Uventede resultater fra SQL-forespørgsel med BETWEEN tidsstempler

Tjek datatypen af kolonnerne og din tidszone . Du er muligvis forvirrende timestamp with time zone og timestamp .

Det ser ud til, at du har timestamp i din tabel, men forespørg med timestamptz . På denne måde afhænger det hele af den lokale tidszone for din session (som som standard er serverens tidszone, hvis ikke andet er angivet).

Skift begge til timestamptz eller timestamp hvis tidszoner er fuldstændig irrelevante for dig. (Hvis du er i tvivl, så brug timestamptz .)

Ikke årsagen til dit problem, men din forespørgsel skulle sandsynligvis være:

SELECT id, text, category, starttime, endtime, creation 
FROM   entries 
WHERE  starttime >= timestamp '2013-03-21' -- defaults to 00:00 time
AND    starttime <  timestamp '2013-03-22'
ORDER  BY id

a BETWEEN x AND y er næsten altid forkert for timestamp typer på grund af brøktal! Hvad ville din forespørgsel gøre med starttime = '2013-03-21T23:59:59.123+00' ?




  1. Udfordringer ved at skalere Moodle PostgreSQL-databasen

  2. Ingen database valgt ved hentning fra mysql-webstedet

  3. Sammenlign fire førende database-IDE-værktøjer

  4. Pivot flere tabeller med standardværdier