如何在SqlAlchemy中查询具有分钟/小时步长间隔的行?

时间:2015-05-14 10:14:07

标签: python mysql flask sqlalchemy

我使用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以有用的方式执行此操作。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你的from_date和to_date只是日期。如果你把它们设置为python datetime对象,你想要你的结果的日期/时间,它应该工作。