Django中条件过滤:按时间筛选

时间:2023-03-08 15:51:43

你有没有遇到过,需要按时间筛选的问题?

我在models中的字段为dateTimeField,那么我该如何构造一个时间格式来和它比较呢?

索性我们有datetime模块

import datetime

now = datetime.datetime.now()  #获取现在的时间

start = datetime.timedelta(hours=23,minutes=59,seconds=59)   #获取当前时间中的一天内的开始时间

#查询一天内的数据
model.objects.filter(date_time_field__gt=start)

其实这就没了,也就这么多的东西,哦,还有一些:

  • gt====大于
  • gte===大于等于
  • lt=====小于
  • lte====小于等于

那如果要查一个时间段呢?

我们用 __range

start = datetime.date(2018,7,12)
end = datetime.date(2018,7,13) model.objects.filter(date_time_filed__range=(start,end))

查询某年 __year

查询某月 __month

查询某天 __day

查询星期几__week__day