Vérifiez le type de données des colonnes et votre fuseau horaire . Vous pouvez confondre timestamp with time zone
et timestamp
.
Il semble que vous ayez timestamp
dans votre table, mais interrogez avec timestamptz
. De cette façon, tout dépend du fuseau horaire local de votre session (qui est par défaut le fuseau horaire du serveur, sauf indication contraire.)
Passez les deux à timestamptz
, ou timestamp
si les fuseaux horaires ne vous concernent absolument pas. (En cas de doute, utilisez timestamptz
.)
Ce n'est pas la cause de votre problème, mais votre requête devrait probablement être :
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
est presque toujours faux pour timestamp
types dus aux nombres fractionnaires ! Que ferait votre requête avec starttime = '2013-03-21T23:59:59.123+00'
?