我在sybasease数据库中有一个带有多个varchar和dateTime字段的表服务器史,我正在使用pyodbc库来连接我的python codebase的数据库。
该表允许进行null DateTime,并且有一些记录,其中UpdDate为NULL,但是当我从Python执行SQL来读取此类记录时,我从来没有在Upddate字段中获得null。
取而代之的是,它拾取了以前的dateTime字段的值,并将其填充为upddate。如果我只选择Upddate,它会给我一个价值" 0年/任何编号不超出范围"。
连接= pyodbc.connect('Connection_str')结果= connection.execute("从server history中选择upddate where = 'srvr1 '")。fetchone()
valueerror:31728年不超出范围
我相信错误可能会发生错误,因为Python不允许以低于最低的时间为1年的时间,因为SQLalchemy无法从sqlite 3(0000-00-00)读取null日期:valueError:valueerror:年份超过范围
尽管如此,我仍然不明白如何解决我的问题以使dateTime执行查询时将其作为null。
hack-ish:
使用select updDate, .. from ...
的coalesce(updDate , date('0001/01/01')
并在使用PYODBC收集的数据时将任何此类updDate
视为CC_3。