TimeField 上的 Django 过滤器
Django filter on TimeField
在我的模型中,我有一个 TimeField:
time = models.TimeField(db_index=True)
现在我必须按这个值过滤:
例如,我需要做类似的事情:time == "12:30"
**** 编辑 *****
我还需要做类似的事情:时间在一个范围内:from 12:15 to 12:15
我怎样才能做到?
你可以这样做:
YourModel.objects.filter(time__contains='16:23')
如果改用这个:
YourModel.objects.filter(time='16:23')
你永远找不到它,因为 TimeField
个对象被保存,包括毫秒:datetime.time(16, 23, 23, 952151)
编辑:
好的,假设你有字符串,你可以这样做:
begin = datetime.datetime.strptime('12:14', '%H:%M').time()
end = datetime.datetime.strptime('12:16', '%H:%M').time()
result = YourModel.objects.filter(time__range=(begin, end))
在我的模型中,我有一个 TimeField:
time = models.TimeField(db_index=True)
现在我必须按这个值过滤:
例如,我需要做类似的事情:time == "12:30"
**** 编辑 *****
我还需要做类似的事情:时间在一个范围内:from 12:15 to 12:15
我怎样才能做到?
你可以这样做:
YourModel.objects.filter(time__contains='16:23')
如果改用这个:
YourModel.objects.filter(time='16:23')
你永远找不到它,因为 TimeField
个对象被保存,包括毫秒:datetime.time(16, 23, 23, 952151)
编辑:
好的,假设你有字符串,你可以这样做:
begin = datetime.datetime.strptime('12:14', '%H:%M').time()
end = datetime.datetime.strptime('12:16', '%H:%M').time()
result = YourModel.objects.filter(time__range=(begin, end))