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

Django中如何查询DateTimeField字段对应今日创建的所有模型条目

Django DateTimeField按日期查询今日数据方案

你原查询失败的原因是DateTimeField存储的内容包含时分秒,直接和日期对象匹配时,相当于要求created_at精确等于今日0点整,自然只能匹配到刚好在这个时间点创建的条目。可以用以下两种方案解决:

方案1:使用Django内置日期查询后缀(推荐,Django 1.9+支持)

直接用__date字段查找后缀,Django会自动提取DateTimeField的日期部分做匹配,忽略时分秒:

from datetime import datetime
# 普通时区未开启场景使用
Maca.objects.filter(created_at__date=datetime.today().date())

如果你的项目开启了时区支持(settings.py中USE_TZ = True),请使用Django自带的时区工具避免时区偏移问题:

from django.utils import timezone
Maca.objects.filter(created_at__date=timezone.localdate())

方案2:时间范围查询(兼容所有Django版本)

手动构造今日0点到次日0点的时间范围做区间查询,性能和内置后缀一致,兼容所有Django版本:

from datetime import datetime, timedelta
today = datetime.today().date()
start = datetime.combine(today, datetime.min.time())
end = start + timedelta(days=1)
Maca.objects.filter(created_at__gte=start, created_at__lt=end)

注意:如果需要时区适配,把上面的datetime替换为django.utils.timezone对应的方法即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:45:06