从数据库日期中查找最接近今天的日期时遇到问题

Trouble with finding closest date to today from database dates

使用 django/models/views,我试图从其中一列是日期的数据库中 return 到今天最近的日期。 (2016/03/25)

我现在用来查找日期的代码是:

now = datetime.datetime.now().date()
statement_list = StatementData.objects.filter(date__gt=now()).reverse()[0]

我从另一个 Whosebug 问题得到了这个,但它 return 是一个错误:

datetime.date' object is not callable

日期的字段名称是 "date",我不知道这是否有问题。

基本上我想要的是:

SELECT * FROM StatementDate WHERE date = "(this is the date that is closest to today)"

我还想要下一个最接近该日期的日期...但我相信一旦我完成第一个查询就可以得到它。

看,我知道这可能是重复的,但我似乎无法找出其他答案,而且我无法 post 对它们发表评论来弄清楚。所以......如果你能指出我确切回答的问题或在这里帮助我,我将非常感激。

您的代码存在一些问题

now = datetime.datetime.now().date()
statement_list = StatementData.objects.filter(date__gt=now()).reverse()[0]
  1. date
  2. 中删除 ()
  3. 去掉第二行的()
  4. 您可以只使用 .last() 而不是 reverse()[0]
now = datetime.datetime.now().date
statement_list = StatementData.objects.filter(date__gt=now).last()

为了解释您得到的实际错误,通过添加括号,python 认为您正在尝试调用名称为 date 的方法,然后在 now ,其中这些不是方法(可调用对象)。它们只是对象。

你为什么不试试呢:

 select * from StatementDate order by now()-date limit 1