我使用sqlalchemy查询MySql数据库的内存日志。我正在使用:
session.query(Memory).filter(Memmory.timestamp.between(from_date, to_date))
但使用时间窗口后的结果仍然太多。
现在我想查询具有时间窗口的结果,但是通过询问每X分钟/小时记录的条目并跳过它们之间的过滤来进行过滤,但找不到简单的方法。
进一步详细说明,让我们说'l'是给定时间窗口中查询的所有结果:
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
为了稀释它们,我正在寻找一个只能每X分钟/小时返回'l'的查询,这样我就不会不知所措:
l......l......l.....l......l......l......l.....l.....l.....l.
我可以获得所有内容,然后编写一个执行此操作的函数,但这样做的目的就是首先避免使用结果进行阻塞。
旁注: 更糟糕的是,我可以在跳过预定数量的行之后请求一行,在行id列上使用mod。但是,由于存在时间戳(DateTime类型为sqlalchemy),因此可以避免这种情况。
编辑:
在时间戳上使用group by
可能会有一些价值,然后以某种方式从每个组中选择一行,但仍然不确定如何使用sqlalchemy以有用的方式执行此操作。
答案 0 :(得分:0)
如果我理解正确,你的from_date和to_date只是日期。如果你把它们设置为python datetime对象,你想要你的结果的日期/时间,它应该工作。