Django ORM的几种时间筛选方式

简介: 时间筛选方式直接使用__year、__month、__day、__week_day年User.object.filter(start_time__year=2019)月User.object.filter(start_time__month=10)日User.object.filter(start_time__day=10)星期几User.object.filter(start_time__week_day=1)在使用start_time__month进行筛选的时候可能会查不到数据,所以为了保险起见,还是多了解几种查询方式比较好。

时间筛选方式

直接使用__year、__month、__day、__week_day

  • User.object.filter(start_time__year=2019)
  • User.object.filter(start_time__month=10)
  • User.object.filter(start_time__day=10)
  • 星期几

    User.object.filter(start_time__week_day=1)
  • 在使用start_time__month进行筛选的时候可能会查不到数据,所以为了保险起见,还是多了解几种查询方式比较好。

使用__lt、__gt范围

  • 大于

    import datetime
    now = datetime.datetime.now()
    User.object.filter(start_time__gt=now)
  • 大于等于

    User.object.filter(start_time__gte=now)
  • 小于

    User.object.filter(start_time__lt=now)
  • 小于等于

    User.object.filter(start_time__lte=now)

使用__range范围

import datetime
import calendar
now = datetime.datetime.now()
# 获取一个月的总天数
days = calendar.monthrange(now.year, now.month)[1]
start_ = datetime.date(now.year, now.month, 1)
end_ = datetime.date(now.year, now.month, days)

User.object.filter(start_time__range=(start_, end_))

参考链接:django filter筛选月份没有数据

相关文章
|
2月前
|
SQL Go 数据库
【速存】深入理解Django ORM:编写高效的数据库查询
【速存】深入理解Django ORM:编写高效的数据库查询
62 0
|
4月前
|
数据管理 数据挖掘 调度
Django后端架构开发:URLconf到ORM深度剖析
Django后端架构开发:URLconf到ORM深度剖析
58 1
|
4月前
|
数据库 Python
Django ORM
【8月更文挑战第23天】
49 4
|
4月前
|
API 数据库 开发者
【独家揭秘】Django ORM高手秘籍:如何玩转数据模型与数据库交互的艺术?
【8月更文挑战第31天】本文通过具体示例详细介绍了Django ORM的使用方法,包括数据模型设计与数据库操作的最佳实践。从创建应用和定义模型开始,逐步演示了查询、创建、更新和删除数据的全过程,并展示了关联查询与过滤的技巧,帮助开发者更高效地利用Django ORM构建和维护Web应用。通过这些基础概念和实践技巧,读者可以更好地掌握Django ORM,提升开发效率。
44 0
|
4月前
|
SQL Go 数据库
Django入门到放弃之ORM多表操作
Django入门到放弃之ORM多表操作
|
4月前
|
SQL 关系型数据库 MySQL
Django入门到放弃之ORM单表操作
Django入门到放弃之ORM单表操作
|
5月前
|
SQL 数据库 Python
Django框架数据库ORM查询操作(6)
【7月更文挑战第6天】```markdown Django ORM常用数据库操作:1) 查询所有数据2) 根据ID查询 3) 精确查询 4) 分页排序
79 1
|
6月前
|
SQL 缓存 数据库
Django中ORM性能调优
【6月更文挑战第19天】 1. **索引优化**:使用`db_index=True`为模型字段创建索引,提升查询速度。 2. **批量操作**:批量创建和更新,减少数据库交互。 3. **查询优化**:利用`select_related`和`prefetch_related`减少查询次数。 4. **缓存**:使用内置缓存或Redis减少数据库访问。 5. **异步任务**:用Celery处理耗时操作,提高响应速度。 6. **数据库连接池**:管理连接,减少创建和销毁开销。 7. **SQL直接操作**:在必要时用原生SQL,避免ORM性能瓶颈。 8. **分页查询**:减少数据传输,改善用
85 10
|
6月前
|
JSON 缓存 数据库
Django ORM的QuerySet:解锁数据库交互的魔法钥匙
Django ORM的QuerySet:解锁数据库交互的魔法钥匙
|
6月前
|
存储 安全 数据库
Django ORM深度游:探索多对一、一对一与多对多数据关系的奥秘与实践
Django ORM深度游:探索多对一、一对一与多对多数据关系的奥秘与实践