【发布时间】:2017-12-20 11:12:14
【问题描述】:
我在 SybaseASE 数据库中有一个包含多个 varchar 和 datetime 字段的表 ServerHistory,我正在使用 pyodbc 库从我的 Python 代码库连接到数据库。
该表允许空日期时间,并且有一些记录,其中 updDate 为空,但是当我从 Python 执行 sql 以读取此类记录时,我永远不会在 updDate 字段中得到空值。
取而代之的是,它获取先前日期时间字段 liveDate 的值并将其填充为 updDate。如果我只选择 updDate,它会给我一个 ValueError“年份 0/任何编号超出范围”。
connection=pyodbc.connect('connection_str') results=connection.execute("select updDate from ServerHistory where server=\'srvr1\'").fetchone()
ValueError: 31728 年超出范围
我相信错误可能会发生,因为根据sqlalchemy can't read null dates from sqlite3 (0000-00-00): ValueError: year is out of range,Python 不允许低于最小年份 1 的时间@
尽管如此,我仍然不明白如何解决我的问题,以便在执行查询时将 null 作为日期时间。
【问题讨论】:
-
请分享您尝试过的内容(代码)。阅读有关如何在 SO 上提问的帮助页面。
-
您可以尝试使用 pyodbc Output Converter function 来捕获原始字节,如果字节对应于 Python 的
datetime无法处理的日期/时间,则返回None。
标签: python-3.x pyodbc