使用 django annotate 和 'generate_series' 生成时区感知日期时间

时间:2021-03-07 19:42:40

标签: django postgresql

我想从考虑夏令时的日期时间生成每周间隔。

示例情况: first_datetime 是 UTC 时间 1 月 3 日 2300 和本地时间。夏令时在 1 月 12 日将当地时间向前移动一个小时。目标输出:2300 3 Jan UTC,2300 10 Jan UTC,2200 17 Jan UTC,...

我目前使用的代码仅以周为间隔向前移动,不考虑时区。

# Models
class Celebration(Models.model):
    first_datetime = models.Date
    ...

# Managers.py
...
Celebration.objects.annotate(
            start=Func(
                ExpressionWrapper(
                    F("first_datetime"), output_field=DateTimeField()
                ),  # Find first datetime.
                end,
                Value("1 week"),
                function="generate_series",
            ),
)

直接使用 postgres 的相关答案:https://dba.stackexchange.com/questions/175963/how-do-i-generate-a-date-series-in-postgresql

0 个答案:

没有答案
相关问题