繁体   English   中英

使用 Django 在两个日期之间进行选择

[英]Select between two dates with Django

我正在寻找一个查询,在 Django 的日期之间进行选择。

我知道如何使用原始 SQL 很容易地做到这一点,但是如何使用 Django ORM 实现这一点?

这是我想在查询中添加 30 天之间的日期的地方:

start_date = datetime.datetime.now() + datetime.timedelta(-30)
context[self.varname] = self.model._default_manager.filter(
    current_issue__isnull=True
    ).live().order_by('-created_at')

使用__range运算符:

...filter(current_issue__isnull=True, created_at__range=(start_date, end_date))

两种方法

.filter(created_at__range=[from_date, to_date])

另一种方法

.filter(Q(created_at__gte=from_date)&Q(created_at__lte=to_date))
  • gte 表示大于等于
  • lte 表示小于等于

如果您使用的是DateTimeField ,则使用DateTimeField过滤将不包括最后一天的项目。

您需要将值转换为日期:

...filter(created_at__date__range=(start_date, end_date))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM