在web项目中(尤其是管理端)经常遇到的一种场景是根据指定时间段筛选数据。比如,根据发布时间(publish_time)筛选,根据添加时间筛选等。本文主要介绍django中的时间段查询应该如何处理。
我们以文章(Article)发布时间(publish_time)为例。
注意:这里发布时间(publish_time)的字段类型应该是date或者datetime,否则不在本文讨论范围。
now = datetime.datetime.now()
start = datetime.datetime(2017,1,1)
1、大于某个时间(gt)
Aticle.objects .filter(publish_time__gt=now)
2、大于等于某个时间(gte)
Aticle.objects .filter(publish_time__gte=now)
3、小于某个时间(lt)
Aticle.objects .filter(publish_time__lt=now)
4、小于等于某个时间(lte)
Aticle.objects .filter(publish_time__lte=now)
5、查询时间段(range)
Aticle.objects .filter(publish_time__range=(start,now))
6、查询某年(year)
Aticle.objects .filter(publish_time__year=now.year)
7、查询某月(month)
Aticle.objects .filter(publish_time__month=now.month)
8、查询某天(day)
Aticle.objects .filter(publish_time__day=now.day)
9、查询星期几(week_day)
Aticle.objects .filter(publish_time__week_day=1)
本文分享自微信公众号 - 飞桨PPDB(Tsing_Liu)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。