18

我有一个测试记录数据库,其中一列“test_time”定义为日期时间。我想查询有多少不同的日期,因为我想根据日期将测试结果转储到 csv。我现在有以下内容:

distinct_dates = list(session.query(Test_Table.test_time).distinct())

但这给了我一个日期时间而不是日期的列表。当然我可以在 Python 中转换它,但是当我使用 sqlite 时。我这样做了SELECT DISTINCT DATE(test_time) FROM Test_Table。我无法在 sqlalchemy 中找到等价物。

4

1 回答 1

39

那将是通过使用cast()表达式:

from sqlalchemy import cast, Date

distinct_dates = session.query(cast(Test_Table.test_time, Date)).distinct().all()

快捷方法

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()
于 2013-06-27T03:30:04.620 回答