我有一个名为“start_time”的datetime
模型。
假设我做基本的选择查询:
results = MyModel.objects.filter(start_time=somedate).order_by('start_time')
我会得到类似的东西:
2015-07-10 17:15:00
2015-07-10 19:15:00
2015-07-10 19:45:00
2015-07-10 21:15:00
2015-07-10 21:45:00
我的目标是排除
所有比前一行至少大 60 分钟的行,这样我会得到这个结果:
2015-07-10 17:15:00
2015-07-10 19:15:00
2015-07-10 21:15:00
有什么建议吗?
最佳答案
相应的 sql 查询可能如下所示:
SELECT * FROM Table
WHERE
start_time > somedate
GROUP BY
DATE(start_time),
HOUR(start_time)
我不确定django ORM
是否支持这种GROUP BY
。如果没有,您可以尝试使用原始 sql。
编辑: 60 分钟或 1 小时通过按日期-小时分组来掩盖。然后它取每组的第一个元素。如果您谈论的是 90 分钟或任何不适合日期时间字段的内容,恐怕这种方法将行不通。过滤应该手动完成。
关于python - Django MySQL 查询 - 选择比上一行大 60 分钟的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31613701/