簡體   English   中英

比較SQLAlchemy中的DateTime和Interval

[英]Compare DateTime and Interval in SQLAlchemy

我有這門課:

class Monitor(db.Model):
    '''
    Base Monitor class.
    '''
    __tablename__ = 'monitor'
    id = db.Column(db.Integer(), primary_key=True)
    last_checked = db.Column(db.DateTime(timezone=False))
    poll_interval = db.Column(db.Interval(),
                              default=datetime.timedelta(seconds=300))

我有這個查詢,我試圖只返回自(now - interval)以來未被檢查過的對象:

monitors = db.session.query(Monitor).\
           filter(or_(Monitor.last_checked < (datetime.utcnow() - Monitor.poll_interval)),
                      Monitor.last_checked == None).\
           all()

但查詢沒有返回任何內容。 我很難找到正確的方法來做到這一點。 我是在正確的軌道還是我錯過了什么? 我正在使用MySQL作為數據庫。

你的括號錯了。 我相信你想要的是:

monitors = db.session.query(Monitor).\
       filter(or_(Monitor.last_checked < (datetime.utcnow() - Monitor.poll_interval),
                  Monitor.last_checked == None)).\
       all()

暫無
暫無

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

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