无法在日期时间列 Python 中获取空值
Unable to get null in datetime column Python
我在 SybaseASE 数据库中有一个带有多个 varchar 和 datetime 字段的 table ServerHistory,我正在使用 pyodbc 库从我的 Python 代码库连接到数据库。
table 允许空日期时间并且有一些记录,其中 updDate 为空但是当我从 Python 执行 sql 来读取这些记录时,我永远不会在updDate 字段。
它取而代之的是获取前一个日期时间字段 liveDate 的值并将其填充为 updDate。如果我只是 select updDate,它会给我一个 ValueError "year 0/any no. is out of range"。
连接=pyodbc.connect('connection_str')
结果=connection.execute("select updDate from ServerHistory where server=\'srvr1\'").fetchone()
ValueError:31728 年超出范围
我相信错误可能会发生,因为 Python 根据
不允许时间低于 1 的最小年份
尽管如此,我仍然不明白如何解决我的问题以在执行查询时将空值作为日期时间。
Hack-Ish:
在你select updDate, .. from ...
的地方使用coalesce(updDate , date('0001/01/01')
,当你使用从pyodbc收集的数据时,将任何这样的updDate
视为None
。
我在 SybaseASE 数据库中有一个带有多个 varchar 和 datetime 字段的 table ServerHistory,我正在使用 pyodbc 库从我的 Python 代码库连接到数据库。
table 允许空日期时间并且有一些记录,其中 updDate 为空但是当我从 Python 执行 sql 来读取这些记录时,我永远不会在updDate 字段。
它取而代之的是获取前一个日期时间字段 liveDate 的值并将其填充为 updDate。如果我只是 select updDate,它会给我一个 ValueError "year 0/any no. is out of range"。
连接=pyodbc.connect('connection_str') 结果=connection.execute("select updDate from ServerHistory where server=\'srvr1\'").fetchone()
ValueError:31728 年超出范围
我相信错误可能会发生,因为 Python 根据
尽管如此,我仍然不明白如何解决我的问题以在执行查询时将空值作为日期时间。
Hack-Ish:
在你select updDate, .. from ...
的地方使用coalesce(updDate , date('0001/01/01')
,当你使用从pyodbc收集的数据时,将任何这样的updDate
视为None
。