1

获取某一天的所有记录的最佳查询是什么?在我的 Weather 模型中,'timestamp' 是一个标准的 DateTimeField。

我目前正在使用

start = datetime.datetime(2009, 1, 31)
end = start + datetime.timedelta(hours=23, minutes=59, seconds=59)
Weather.objects.filter(timestamp__range=(start, end))

但想知道是否有更有效的方法。

4

2 回答 2

4

它在 django.views.generic.date_based 中完成的方式是:

{'date_field__range': (datetime.datetime.combine(date, datetime.time.min),
                       datetime.datetime.combine(date, datetime.time.max))} 

应该很快就会有一个补丁合并到 Django中,它将为这种类型的查询提供 __date 查找(http://code.djangoproject.com/ticket/9596)。

于 2009-04-05T05:44:44.770 回答
2
  1. 不要过早优化
  2. 您的查询经常基于的索引列
  3. 优化昂贵的列,例如添加自动更新的年、月和日值(可能只是作为一个字符串),当且仅当测试表明它提供了显着的加速并且只有在使用现在已经工作的东西并确定它不可行之后。
于 2009-04-05T01:33:51.597 回答