It's not required by PostgreSQL.  See,
http://www.postgresql.org/docs/8.4/interactive/datatype-datetime.html
, for example.

You may be able to change the data type of that column directly in the
database.  (See 
http://www.postgresql.org/docs/8.4/interactive/ddl-alter.html#AEN2595
.)

Maybe "ALTER TABLE notification_notice ALTER COLUMN created TYPE
timestamp without time zone ;"

K.C.

On Nov 11, 7:32 pm, Kevin <hekevint...@gmail.com> wrote:
> I thought that Django created datetime columns that were time zone
> agnostic, but when I looked at my Postgres table I saw that the values
> recorded there have time zone information.
>
> Going further I found that the Postgres backend directs Django to create
> columns that use time zones.
>
> From django/db/backends/postgresql/creation.py:
>
>     data_types = {
>             ...
>             'DateTimeField':     'timestamp with time zone',
>             ...
>
> The schema shows that the created column is specified as "timestamp with
> time zone".
>
>     CREATE TABLE notification_notice
>     (
>       ...
>       created timestamp with time zone NOT NULL,
>       ...
>
> The Postgres log shows the update statement that was sent. Django
> constructed a SQL statement that used UTC as the time zone as directed by
> my Django settings file.
>
>     UPDATE "notification_notice" SET "sender_id" = 1, "group_id" = NULL,
> "notice_type_id" = 1, "content_type_id" = 21, "object_id" = 3, "created" =
> E'2011-11-11 22:31:08.022148' WHERE "notification_notice"."id" = 14
>
> This is what my table looks like. The created column has a timestame that
> has "-08" for its time zone. Postgres must be inspecting the time zone of
> my system clock to find the time zone.
>
>     my_db=# select * from notification_notice limit 1;
>      id | sender_id | group_id | notice_type_id | content_type_id |
> object_id |           created            | last_interaction_time
>
> ----+-----------+----------+----------------+-----------------+-----------+ 
> ------------------------------+-----------------------
>       1 |           |        3 |             21 |              53 |
> 6 | 2011-11-11 14:31:02.98882-08 |
>     (1 row)
>
> Questions:
> Doesn't Django have a hands off policy to time zones?
> Why does the Postgres backend use time zones for models.DateTimeField? Is
> this required by Postgres?
> Is there a way to force Django to create timestamp columns in Postgres that
> don't use the time zone?

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to