PostgreSQL: zwischen mit datetime

Ich benutze PostgreSQL 8.4.11 und finde seltsame Fehler. Wenn ich frage:

SELECT "documents_document"."given_on" 
FROM "documents_document" 
WHERE (EXTRACT('month' FROM "documents_document"."given_on") = 1
       AND "documents_document"."given_on" 
       BETWEEN '1-01-01 00:00:00' and '1-12-31 23:59:59.999999') 
ORDER BY "documents_document"."created_on" DESC

Ich erhalte Ergebnisse:

  given_on  
------------
 2002-01-16
 2011-01-25
 2012-01-12
 2012-01-12
 2012-01-12
 2012-01-20
 2012-01-19
 2012-01-13
 2012-01-31
 2012-01-16
 2012-01-31
 2012-01-12
 ...

Warum?

Ich würde Termine im Intervall 1-01-01 ... 1-12-31 erwarten.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage