SQLAlchemyでのフィルタリングについて少し混乱しています。
現在、10週間を超えるエントリを除外しようとしているので、
_current_time = datetime.datetime.utcnow()
potential = session.query(Subject).filter(Subject.time < current_time - datetime.timedelta(weeks=10))
_
ただし、potential.count()
は常に_0
_を返します。
私の理論では、Column(DateTime())
型ではない列を使用しようとすると、代わりにfilterステートメントを正しく使用しません。
Column(String(250))
お気に入り
_ potential = session.query(Subject).filter(Subject.string_field < current_time - datetime.timedelta(weeks=10))
_
SQLAlchemyはまだ文句を言いません。
また、私が手動でチェックすると
_curr_time - session.query(Subject).first().time > datetime.timedelta(weeks=10)
_
True
を取得します。これは、カウントが_0
_であってはならないことを意味します。
明らかな何かが欠けていますか?助けていただければ幸いです。
<
から>
過去10週間以内にすべての科目を取得できます。
current_time = datetime.datetime.utcnow()
ten_weeks_ago = current_time - datetime.timedelta(weeks=10)
subjects_within_the_last_ten_weeks = session.query(Subject).filter(
Subject.time > ten_weeks_ago).all()
フィルターはWHERE
句を生成します。この句はincludes結果が句に一致します。したがって、結果は「除外」されませんが、含まれます。