pyodbc使用DATETIME列处理好datetime.datetime对象。无需特殊格式
但它失败了datetime.date对象和DATE列:[HY004] [FreeTDS][SQL Server]Invalid data type (0) (SQLBindParameter)
一种方法是使用.isoformat()方法将datetime.date对象作为字符串插入。
但是:
d1 = dt.date.today()
d2 = dt.datetime.now()
print(isinstance(d1, dt.date))
print(isinstance(d1, dt.datetime))
print(isinstance(d2, dt.date))
print(isinstance(d2, dt.datetime))
返回
True
False
True
True
是否有比这样的测试更好的方法?
if isinstance(d1, dt.date) and not isinstance(d1, dt.datetime):
d1 = d1.isoformat()
答案 0 :(得分:3)
我能够在FreeTDS 0.91下重现您的问题,这是由apt install tdsodbc
在Ubuntu下分发的版本。但是,我能够成功使用datetime.date
参数值来使用