pyodbc ValueError:月必须在1.中。12

时间:2020-09-14 21:12:36

标签: python centos odbc pyodbc

我在Windows10(主机操作系统)和CentOS docker映像中安装了pyodbc。 在Windows10中,它按预期工作,但是在Docker映像上引发错误。 update raport_luna r set in_Arbeit_ohne_at = (select s.seq from sqlite_sequence s where s.name = r.user) where exists (select 1 from sqlite_sequence s where s.name = r.user)

ValueError: month must be in 1..12

Windows 10:主机操作系统
python3.7.4
pyodbc4.0.27

CentOS7:泊坞窗映像
python3.6.8
pyodbc4.0.30

这是我的dockerfile,

import pyodbc
conn = pyodbc.connect('DSN=db2; UID=myid; PWD=mypwd')
cursor = conn.cursor()
cursor.execute('select * from mydb.atable')
rows = cursor.fetchall()

我会错过在centos上安装任何开发工具吗?

1 个答案:

答案 0 :(得分:1)

在没有docker的另一个Linux上,我遇到了同样的问题。相同的Python版本,相同的pyodbc版本。使用pyodbc 3.0.10也会发生这种情况。

数据库:Sybase ASE,操作系统:Red Hat Enterprise Linux Server 7.8(Maipo)

如果您的结果集中包含时间戳,请尝试以下操作:

一位同事创建了此补丁,但现在想保持匿名。 https://github.com/pucgenie/pyodbc/pull/1

基本上,向驱动程序提供了指向SQLLEN的指针,然后仅填充了32位。 pyodbc无法检测到(-1)而不是(2 ^ 32 -1)。该补丁为0x00000000FFFFFFFFFF添加了一个难看的异常处理。

相关问题