例如表的结构如下:
class Status(db.Model):
id = db.Column(db.Integer, primary_key=True)
submit_time = db.Column(db.DateTime, default=datetime.now())
其中,Status表接受用户的提交,现在想对用户的提交情况按时间进行统计。例如过去24小时,每小时的提交次数;过去12个月,每个月的提交次数。
python代码实现查询如下:
from datetime import datetime, timedelta
NOW = datetime.utcnow()
last_24h_submits_count = []
for h in xrange(1,25):
count = session.query(Status).filter(Status.submit_time.between(NOW - timedelta(seconds=h*3600-1), NOW - timedelta(hours=h-1))).count()
last_24h_submits_count.append(count)