【问题标题】:Compare Postgresql timestamp to timezone in sql query in django将 Postgresql 时间戳与 django 中 sql 查询中的时区进行比较
【发布时间】:2014-12-27 03:35:54
【问题描述】:

当我运行以下查询时

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()"

我一直在努力解决这个问题,但无法弄清楚。任何帮助都将不胜感激!

【问题讨论】:

    标签: sql django postgresql django-timezone


    【解决方案1】:

    django 期待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() 不包括时区吗?
    • 不,检查timezone.is_aware(timezone.now()) 并查看结果。
    • 好的,我可以使用 pytz 来转换它吗?我现在有"viewed_date" &lt;= \'timezone.localtime(datetime.now(), is_dst=None)\'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多