Django 注释添加时间间隔到日期
Django annotate add interval to date
我在 Django 2.2 中使用 postgres 数据库。我需要在模型中组合日期和时间字段,并在其中添加一天的间隔。我已经完成了第一部分。
Model.objects.annotate(
end_dt=models.ExpressionWrapper(
models.F('date') + models.F('end'),
output_field=models.DateTimeField()
)
)
现在我必须在 end_dt
上增加 1 天。我用这样的普通 sql 完成了此操作。
SELECT
"db_shift"."id",
(("db_shift"."date" + "db_shift"."end") + INTERVAL '1 day') AS "end_dt"
FROM
"db_shift";
如何使用 django ORM 实现此目的?或者甚至可以实现?
经过一些试验,我发现从 datetime 添加 timedelta 效果很好:)
import datetime
Model.objects.annotate(
end_dt=models.ExpressionWrapper(
models.F('date') + models.F('end') + datetime.timedelta(days=1),
output_field=models.DateTimeField()
)
)
我在 Django 2.2 中使用 postgres 数据库。我需要在模型中组合日期和时间字段,并在其中添加一天的间隔。我已经完成了第一部分。
Model.objects.annotate(
end_dt=models.ExpressionWrapper(
models.F('date') + models.F('end'),
output_field=models.DateTimeField()
)
)
现在我必须在 end_dt
上增加 1 天。我用这样的普通 sql 完成了此操作。
SELECT
"db_shift"."id",
(("db_shift"."date" + "db_shift"."end") + INTERVAL '1 day') AS "end_dt"
FROM
"db_shift";
如何使用 django ORM 实现此目的?或者甚至可以实现?
经过一些试验,我发现从 datetime 添加 timedelta 效果很好:)
import datetime
Model.objects.annotate(
end_dt=models.ExpressionWrapper(
models.F('date') + models.F('end') + datetime.timedelta(days=1),
output_field=models.DateTimeField()
)
)