python - 在 sqlalchemy 中将选定的日期时间转换为日期

标签 python sqlalchemy

我有一个测试记录数据库,其中一列“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/

相关文章:

python - 在 SQLAlchemy 中为 ORM 创建一对多关系

jdbc - 无法加载插件 : sqlalchemy. 方言 :jdbc. 配置单元

Python 数据集包 & 循环/更新行 --

python - 如何在数学上减去 python 中的两个列表?

python - 如何在 Cython 中使用用 C 编写的函数

python - 随机排列列表中元素的位置

python - Matplotlib 支持 Qt5 吗?

python - 内部查询中的 Sqlalchemy from_self 引用外部别名表

python - 无法使用 sqlalchemy 建立连接 SQL Server

python - 快速查找二维数组中的多个最大值