python - sqlalchemy:在列上调用 STR_TO_DATE

标签 python mysql sqlalchemy

我正在将一些代码从使用原始 MySQL 查询的方式转移到 sqlalchemy 上。

我当前遇到的问题是日期时间由 C# 工具以字符串格式保存。不幸的是,该表示与 Python 的不匹配(并且它有一组额外的单引号),因此使得过滤有些麻烦。

以下是保存日期的格式示例:

'2016-07-01T17:27:01'

我能够使用以下 MySQL 命令将其转换为可用的日期时间:

 STR_TO_DATE(T.PredicationGeneratedTime, \"'%%Y-%%m-%%dT%%H:%%i:%%s'\")

但是,我找不到任何描述如何在使用 sqlalchemy 进行过滤时调用内置函数(例如 STR_TO_DATE)的文档

以下 Python 代码:

 session.query(Train.Model).filter(cast(Train.Model.PredicationGeneratedTime, date) < start)

正在给我:

 TypeError: Required argument 'year' (pos 1) not found

似乎没有办法指定转换的格式。

注意:我意识到解决方案是修复日期时间的存储方式,但同时我想对现有数据运行查询。

最佳答案

您可以尝试使用func.str_to_date(COLUMN, FORMAT_STRING)而不是cast

关于python - sqlalchemy:在列上调用 STR_TO_DATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38276487/

相关文章:

连接时出现 Python SocketServer 错误

python - 使用 SQLAlchemy 自动设置基于另一个字段的值

PHP 和 mySQL,使用当前日期?

python - sqlalchemy 过滤器

sqlalchemy - 有没有办法更新 sqlalchemy 引擎上的连接凭据?

python - 如何使用python icrawler爬取多个关键词

python - aiohttp.TCPConnector (with limit argument) vs asyncio.Semaphore 用于限制并发连接数

python - 交错集群的算法

java - Android SQL数据库创建时出错

mysql - 日历的表结构 - 基于日期存储数据