python – 如何在日期时间字段中按时间过滤?

前端之家收集整理的这篇文章主要介绍了python – 如何在日期时间字段中按时间过滤?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在模型中,“输入”是日期时间字段.我想查询数据以查找中午(start_time)和下午5:00(end_time)之间的所有条目.
selected = Entry.objects.filter(entered__gte=start_time,entered__lte=end_time)

(正如我所料)我得到一个错误

"ValidationError: Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."

所以我知道我可以使用__year所以我试过了.

selected = Entry.objects.filter(entered__time__gte=start_time,entered__time__lte=end_time)

我得到一个错误

"FieldError: Join on field 'start' not permitted. Did you misspell 'time' for the lookup type?"

解决方法

您可以使用db的机制在python中进行过滤:
for e in Entry.objects.all():
   if i.entered.hour>= 9 and i.entered.hour < 17 :# or break down to minutes/seconds
        list.append(e)

但我认为这两种解决方案都很难看.

史蒂夫,你必须决定,对你来说不那么难看:

>在for循环中处理大量数据,>或使用.extra(..)并绕过orm系统

猜你在找的Python相关文章