Python 使用Django在两个日期之间进行选择
我想做一个查询,在Django的日期之间进行选择 我知道如何很容易地使用原始SQL实现这一点,但是如何使用Django ORM实现这一点呢 这是我想在我的查询中添加30天间隔日期的地方:Python 使用Django在两个日期之间进行选择,python,django,Python,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
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')
使用操作员:
...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意味着小于等于
日期时间字段
,则使用日期进行筛选不会包括最后一天的项目
您需要将值强制转换为日期:
...filter(created_at__date__range=(start_date, end_date))
“created_at”是模型中的任意字段还是创建记录时数据库的实际日志?@Philip556677它是模型中的任意字段。您可以将DateField的参数设置为True以方便使用。在第二种方法中不需要Q对象,您可以编写:
.filter(created_at_ugte=from_date,created_at_ulte=to_date)