You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中筛选两个datetime列日期相同的QuerySet?

Django筛选datetime列日期相同的QuerySet方法

你之前尝试的两种写法都无法生效,原因是F()表达式不支持直接使用__date这类字段查找后缀。要实现两个datetime列日期相同的筛选,推荐以下两种可行方案:

方案一:使用TruncDate函数

从django.db.models.functions导入TruncDate,通过它提取datetime字段的日期部分进行比较:

from django.db.models.functions import TruncDate

drivers = drivers.filter(
    TruncDate('deleted_at') == TruncDate('created_at')
)

方案二:使用Cast函数

将datetime字段直接转换为Date类型后再比较,需要从django.db.models导入DateField和Cast:

from django.db.models import DateField, Cast

drivers = drivers.filter(
    Cast('deleted_at', output_field=DateField()) == Cast('created_at', output_field=DateField())
)

这两种方法都会生成对应的SQL语句,准确对比两个字段的日期部分,筛选出符合条件的记录。

内容的提问来源于stack exchange,提问作者Laurent Lyaudet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:45:26