Verifique o tipo de dados das colunas e seu fuso horário . Você pode estar confundindo
timestamp with time zone e timestamp
. Parece que você tem
timestamp na sua tabela, mas consulte com timestamptz . Dessa forma, tudo depende do fuso horário local da sua sessão (que tem como padrão o fuso horário do servidor se não for especificado de outra forma). Alterne ambos para
timestamptz , ou timestamp se os fusos horários forem completamente irrelevantes para você. (Em caso de dúvida, use timestamptz .) Não é a causa do seu problema, mas sua consulta provavelmente deve ser:
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 é quase sempre errado para timestamp tipos devido a números fracionários! O que sua consulta faria com starttime = '2013-03-21T23:59:59.123+00' ?