The following bug has been logged on the website:
Bug reference: 7886
Logged by: Nick Baxter
Email address: nick.baxter@gmail.com
PostgreSQL version: 9.0.3
Operating system: Linux 2.6.18
Description: =
9.9.2. indicates that date_trunc can be called with a date value (which will
be cast to a timestamp). And regardless of the input, that the result will
be of type timestamp. When I call it with a date, I get a timestamp with
time zone instead, as indicated by the psql output.
# select date_trunc('month',date '2013-2-15');
date_trunc
------------------------
2013-02-01 00:00:00-06
(1 row)