将所选日期时间转换为sqlalchemy中的日期

时间:2013-06-27 01:17:00

标签: python sqlalchemy

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

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

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

1 个答案:

答案 0 :(得分:12)

那就是使用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()