Django ORM的几种时间筛选方式-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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筛选月份没有数据

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章