我正在通过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/