Django queryset基于比较日期

时间:2012-08-05 08:22:23

标签: sql django django-orm

  

可能重复:
  How do you select between two dates with Django

我的django模型包含2个字段 - c_date c_int 。因为我在创建查询方面非常弱...有没有办法从db中获取那些满足此要求的记录:c_date+timedelta(days=c_int)=date.today?我想在数据库级别上这样做,因为它比获取所有记录和比较所有记录的日期更快。

1 个答案:

答案 0 :(得分:1)

您应该使用QuerySet.extra来构建复杂的WHERE子句。特别是对于您的要求,您应该检查所选数据库的DATEADD函数的可用性。

虽然,根据您的数据集的大小以及您需要运行此查询的频率,另一个选项是进行迁移,并在创建实例时立即计算日期和偏移的总和 - 您可以创建自定义ModelForm以继续允许用户将c_int指定为以天为单位的偏移量。