我正在通过python pyodbc查询具有时间列(数据类型为时间)的表。该列具有值17:12:40,但通过选择此时间列时通过pyodbc,它将返回datetime.time(0, 0)值。

示例:查询为:

Select arrivalTime from myTable where id =1


数据库中arrivalTime的实际值是17:12:40,但是pyodbc返回的值datetime.time(0, 0)实际上等于空值。

在sql接口中执行同一查询将返回正确的值。甚至SqlAlchemy也可以正确执行它。只有pyodbc返回的值不正确。

仅当我通过pyodbc连接到mySql数据库时,才会出现此问题。 mySql DSN是否存在pyodbc依赖关系?

这是一个已知的问题?

最佳答案

确保在整个堆栈中使用TDS版本7.3:


在您的连接字符串中;
在odbc.ini中;
在FreeTDS.conf中。


看到这里:http://www.freetds.org/userguide/choosingtdsprotocol.htm

如果您在连接字符串中使用的是8.0版,则不正确;它对应于7.1版。只有TDS版本7.3支持SQL Server 2008中引入的DATE和TIME数据类型。

祝好运!

关于python - 在python pyodbc中选择时间查询问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33118422/

10-12 21:38