Python 如何在SqlAlchemy中以分钟/小时的步长查询行?
我正在使用sqlalchemy查询MySql数据库的内存日志。我正在使用:Python 如何在SqlAlchemy中以分钟/小时的步长查询行?,python,mysql,flask,sqlalchemy,Python,Mysql,Flask,Sqlalchemy,我正在使用sqlalchemy查询MySql数据库的内存日志。我正在使用: session.query(Memory.filter(Memmory.timestamp.between(from\u date,to\u date)) 但使用时间窗口后的结果仍然太多 现在我想通过时间窗口查询结果,但通过每X分钟/小时查询一次记录的条目并跳过这两个时间窗口之间的条目进行筛选,但找不到简单的方法 为了进一步说明,假设“l”是给定时间窗口中查询的所有结果: llllllllllllllllllllllll
session.query(Memory.filter(Memmory.timestamp.between(from\u date,to\u date))
但使用时间窗口后的结果仍然太多
现在我想通过时间窗口查询结果,但通过每X分钟/小时查询一次记录的条目并跳过这两个时间窗口之间的条目进行筛选,但找不到简单的方法
为了进一步说明,假设“l”是给定时间窗口中查询的所有结果:
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
为了稀释它们,我正在寻找一个每X分钟/小时只返回“l”的查询,这样我就不会不知所措:
l……l……l……l……l……l……l……l……l……l……l……l.
我可以得到所有东西,然后编写一个函数来实现这一点,但这超出了一开始避免结果阻塞的目的
旁注:
更糟糕的是,我可以在跳过预先定义的行数后,使用row id列上的mod请求一行。但最好避免这种情况,因为有一个时间戳(sqlalchemy的DateTime类型)
编辑:
在时间戳上使用
groupby
,然后以某种方式从每个组中选择一行,可能会有一些价值,但仍然不确定如何使用sqlalchemy以一种有用的方式实现这一点。如果我正确理解的话,您的起始日期和截止日期只是日期。如果您将它们设置为python datetime对象,并将结果的日期/时间设置在两者之间,则应该可以使用。问题在于结果仍然太多。我需要在给定的日期内每隔5分钟带一次。