小编典典

django:datediff sql查询吗?

sql

我正在尝试在Django中执行以下SQL的等效操作:

从申请人那里选择* date_out-date_in> = 1 AND date_out-date_in <= 6

我可以作为RAW
sql查询来执行此操作,但是在处理RawQuerySet而不是常规QuerySet对象时,这变得令人沮丧,因为我希望以后可以在代码中对其进行过滤。


阅读 204

收藏
2021-05-16

共1个答案

小编典典

您可以使用该extra()方法并传入where关键字参数。的值where应为包含WHERE上面查询的SQL子句的列表。我用Postgresql
8.4进行了测试,这就是我的情况:

q = Applicant.objects.extra(where = ["""date_part('day', age(date_out, date_in)) >= 1 and
      date_part('day', age(date_out, date_in)) <= 6"""])

这将返回一个有效QuerySet实例。

2021-05-16