Django 日期时间比较
我正在尝试在一个Django应用中查找那些日期时间字段早于当前日期时间的记录。
我有这样的代码:
records = Record.objects.filter(my_field__lte=datetime.now())
但是,它只找到那些日期早于今天的记录(如果有记录的日期早于现在,但在今天的日期上,它们不会被返回)。
补充说明一下。如果字段设置为2011年12月10日19:59:00,而当前时间是2011年12月10日20:00:00,那么我希望这个记录能在查询结果中返回。然而,实际上它直到第二天查询时才会被返回。(这个查询每五分钟运行一次,用于根据这个日期时间字段发送邮件)
希望这样能解释清楚。
顺便说一下,我使用的是MySQL。
有人能帮忙吗?
任何建议都非常感谢。
谢谢
2 个回答
0
只需要测试明天的午夜,而不是现在:
now = datetime.now()
midnight = datetime(now.year, now.month, now.day+1, 0, 0, 0)
records = Record.objects.filter(my_field__lt=midnight)
或者你可以使用 date.today
和 timedelta
来达到同样的效果:
from datetime import date, timedelta
tomorrow = date.today() + timedelta(days=1)
records = Record.objects.filter(my_field__lt=tomorrow)
1
先在数据库里查看一下是否能看到时间相关的属性,然后再检查一下你的模型里是否有models.DateTimeField这个字段,确保没有错误地使用models.DateField。