Mark Douglas <mark(at)steelhousemedia(dot)com> writes:
> I have my timezone set to GMT so there really shouldn't be any time zone adjustments.
Okay ...
postgres=# set timezone = GMT;
SET
postgres=# SELECT DATE_TRUNC('MONTH', CURRENT_DATE);
date_trunc
------------------------
2009-09-01 00:00:00+00
(1 row)
I suspect there's something you're not telling us, like you're
using a client-side library that is doing timezone adjustments
behind your back.
regards, tom lane