簡體   English   中英

Python peewee,根據經過的時間過濾查詢

[英]Python peewee, filtering query based on elapsed time

這是我的“請求”類/表:

class Request(BaseModel):
    TIME_STAMP = DateTimeField(default=datetime.datetime.now)
    MESSAGE_ID = IntegerField()

對於peewee,我想從表中選擇過去10分鍾內發生的所有“請求”。 像這樣:

rs = Request.select().where(Request.TIME_STAMP-datetime.datetime.now<(10 minutes))

但是,我不確定如何在TIME_STAMP和當前時間之間取得分鍾數。

編輯:我嘗試了Gerrat的建議,但Peewee似乎哭了:

/usr/local/lib/python2.7/dist-packages/peewee.py:2356: Warning: Truncated incorrect DOUBLE value: '2014-07-19 15:51:24'
  cursor.execute(sql, params or ())
/usr/local/lib/python2.7/dist-packages/peewee.py:2356: Warning: Truncated incorrect DOUBLE value: '0 0:10:0'
  cursor.execute(sql, params or ())

我從未使用過peewee,但是如果您只減去兩個時間戳,那么您將獲得一個datetime.timedelta對象。 然后,您應該可以將其與另一個timedelta對象進行比較。 就像是:

rs = Request.select().where(Request.TIME_STAMP-datetime.datetime.now() 
                            <(datetime.timedelta(seconds=10*60)))

編輯 ...靠近peewee,上面的效果可能不起作用。 如果沒有,則應如下所示:

ten_min_ago = datetime.datetime.now() - datetime.timedelta(seconds=10 * 60)
rs = Request.select().where(Request.TIME_STAMP > ten_min_ago)

數據庫中的時間戳大於當前時間(選擇所假設的時間)似乎有點奇怪...因此,您可能想要添加時間增量並以相反的方式減去值(例如,如果要選擇最近10分鍾內的記錄)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM