通过 django 查询使用 Redshift 的原生“AT TIMEZONE”?
Posted
技术标签:
【中文标题】通过 django 查询使用 Redshift 的原生“AT TIMEZONE”?【英文标题】:Using Redshift's native 'AT TIMEZONE' through django query? 【发布时间】:2017-10-18 08:33:44 【问题描述】:所以我有这样的查询
query = MyModel.objects.filter(some_filter).filter(eventTime__date__gte=start_date).filter(eventTime__date__lte=end_date)....
我要连接的红移表的 eventTime 为 UTC。它让我可以像
一样使用本机 SQL 进行查询select eventtime AT TIME ZONE 'MST' from mymodel limit 1;
如何在 django 查询格式中使用 AT TIME ZONE 'MST'
?
【问题讨论】:
【参考方案1】:就“在时区”而言,postgres 和 redshift 是相同的。
这应该会有所帮助 https://github.com/counsyl/django-postgres-timezones
Django 在构造查询时不使用 at time zone 语法,因此如果 USE_TZ 为 False,则 Django 加载的时间戳将(通过 Postgres)转换为 settings.TIME_ZONE 时区(请记住 Django 配置与该时区的数据库连接) 并作为朴素的 Python 日期时间存储在您的模型中
【讨论】:
以上是关于通过 django 查询使用 Redshift 的原生“AT TIMEZONE”?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 aws redshift 管理 django'orm?
如何定义 Lambda 变量以通过 API Gateway 查询 Redshift