使用 SQLAlchemy 查询数据库的方法,其中日期是一周中的特定一天?

Sar*_*rah 5 python datetime sqlalchemy

我有一个表(称为“entry”),它有一个日期时间列(称为“access_date”),我想做一个 SQLAlchemy 查询,该查询只生成 entry.access_date 是星期一(或指定的一周中的任何其他日期)的结果由一个数字 [0..6])。

这可能吗?如果这有什么不同,我正在使用 sqlite 和 SQLalchemy 0.5.8。

Dan*_*uev 2

SQLAlchemy 不支持通用的 DAYOFWEEK() 函数,因此您必须在 where 子句中使用特定于方言的 sql。

对于 MySQL,您可以使用自定义函数“weekday”或“dayofweek”,但由于 sqlite 既没有日期时间类型也没有 weekday()/dayofweek(),因此您需要一些原始 sql。

http://www.mail-archive.com/sqlite-users@sqlite.org/msg51116.html这里是此查询的示例。

在 SQLA 中,这看起来像

query.filter("strftime('%w', access_date) = :dow").params(dow=0).all()
Run Code Online (Sandbox Code Playgroud)