我有一个测试记录数据库,其中一列’test_time’定义为datetime.我想查询有多少个不同的日期,因为我想根据日期将测试结果转储到csv.我现在有以下内容:
distinct_dates = list(session.query(Test_Table.test_time).distinct())
但这给了我一个日期时间列表而不是日期.当然我可以用Python转换它,但是当我使用sqlite时.我从Test_Table做了SELECT DISTINCT DATE(test_time).我无法想出sqlalchemy中的等价物.
解决方法:
那将是使用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()
标签:python,sqlalchemy
来源: https://codeday.me/bug/20190929/1831520.html