Überprüfen Sie den Datentyp der Spalten und Ihrer Zeitzone . Möglicherweise verwirren Sie timestamp with time zone und timestamp
.
Sieht so aus, als hätten Sie timestamp in Ihrer Tabelle, aber Abfrage mit timestamptz . Auf diese Weise hängt alles von der lokalen Zeitzone Ihrer Sitzung ab (die standardmäßig die Zeitzone des Servers ist, wenn nicht anders angegeben.)
Stellen Sie beide auf timestamptz um , oder timestamp wenn Zeitzonen für Sie völlig irrelevant sind. (Im Zweifelsfall timestamptz verwenden .)
Nicht die Ursache Ihres Problems, aber Ihre Abfrage sollte wahrscheinlich lauten:
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 ist fast immer falsch für timestamp Typen aufgrund von Bruchzahlen! Was würde Ihre Abfrage mit starttime = '2013-03-21T23:59:59.123+00' machen ?