【发布时间】:2014-09-07 16:04:40
【问题描述】:
我有一个 SQLite 数据库,我在其中声明了某些列类型为 DATE(允许但当然被 SQLite 忽略,因为它没有 DATE 类型)。我将日期存储为 SQLite 日期字符串。
从 Python 连接时,我将 detect_types=sqlite3.PARSE_DECLTYPES 传递给连接。这允许 sqlite 库正确确定哪些列包含日期,并且当我从这些列中读取时,它正确地为我提供了 date 对象,而不是字符串。
但是,如果我聚合一个日期列,我会得到一个字符串,而不是一个日期:
SELECT MIN(ReportDate) FROM PatientReports WHERE PatientID = ?;
产生一个字符串,而不是日期值。有趣的是这个 SQL:
SELECT ReportDate FROM PatientReports WHERE PatientID = ? ORDER BY ReportDate DESC LIMIT 1;
正确生成日期值(这是我正在使用的解决方法)。
问题:有什么方法可以修改第一条 SQL 语句或我的数据库定义以允许 Python 保留隐含的日期转换?
【问题讨论】:
-
糟糕——确实重复了!