比较PostgreSQL的时间戳的SQL查询时区在Django
问题描述:
当我运行下面的查询比较PostgreSQL的时间戳的SQL查询时区在Django
Viewed.objects.raw('SELECT "recently_viewed_viewed"."id"FROM "recently_viewed_viewed" WHERE NOT ("recently_viewed_viewed"."viewed_date" <= \'timezone.now()\' AND "recently_viewed_viewed"."user_id" = user_id)')
我得到
DataError: invalid input syntax for type timestamp with time zone: "timezone.now()"
我一直在挣扎与这一个尚未能图出来。任何帮助总是感激!
答
django expect timestamp with time zone
但是您通过timestamp without time zone
。您必须在您的时间内添加timezone
或在您的settings.py
中设置USE_TZ = False
。您可以使用pytz
添加timezone
。或使用此:
timezone.now().replace(tzinfo=timezone.get_default_timezone())
用于更改timezone
与您的设置时区。
不''timezone.now()'包括时区? – robert 2014-10-30 22:19:12
不,请检查'timezone.is_aware(timezone.now())'并查看结果。 – 2014-10-30 22:29:42
好的,我可以使用pytz转换它吗?我已经''viewing_date“ robert 2014-10-30 22:45:24