我有一个测试记录数据库,其中一列“test_time”定义为日期时间。我想查询有多少个不同的日期,因为我想根据日期将测试结果转储到 csv。我现在有以下内容:
distinct_dates = list(session.query(Test_Table.test_time).distinct())
但这给了我一个日期时间而不是日期的列表。当然我可以用 Python 转换它,但是当我使用 sqlite 时。我这样做了 SELECT DISTINCT DATE(test_time) FROM Test_Table
。我想不出 sqlalchemy 中的等价物。
最佳答案
那就是使用 cast()
表达式:
from sqlalchemy import cast, Date
distinct_dates = session.query(cast(Test_Table.test_time, Date)).distinct().all()
或 shortcut method :
distinct_dates = session.query(Test_Table.test_time.cast(Date)).distinct().all()
如果使用 SQLite,请试一试:
distinct_dates = session.query(func.DATE(Test_Table.test_time)).distinct().all()
关于python - 在 sqlalchemy 中将选定的日期时间转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333014/