在pyodbc中将空值绑定到日期字段

4 投票
1 回答
4270 浏览
提问于 2025-04-15 23:06

使用pyodbc库时,如果我在一个日期字段上执行这段代码:

cursor.execute('insert into test VALUES (?)', None)

... 我会收到一个错误信息:pyodbc.Error: ('HY000', '[HY000] [SAS][SAS ODBC Driver][SAS Server]ERROR: 值 1 的 VALUES 子句 1 与对应列的数据类型不匹配 (-1) (SQLExecDirectW)')。而如果我执行这段:

cursor.execute('insert into test VALUES (null)')

... 就能正常工作。有没有其他方法可以执行这个操作,这样我就不需要检查我传递的参数了?

1 个回答

2

在我的代码中(使用的是Python 2.71和pyodbc 2.1.8),连接的是一个MS Access数据库,下面的代码是可以正常工作的:

st_dt=None
sql = 'insert into COM(poste,mydate) values (?,?)'
cursor.execute(sql,'1254',st_dt)
cnxn.commit()

这里的mydate是一个时间戳类型的列,并且没有设置默认值。

撰写回答