2017-03-03 80 views
0

使用OS Windows,Python 3.4,pyodbc与SQL Server驱动程序,它将SQL十进制(18,6)转换为(并且正确)为python decimal.Decimal。FreeTDS将SQL十进制返回为float

在Linux,Python 3.4,pyodbc和FreeTDS 0.91-6驱动程序中,同一列转换为python float(以及所有与浮点四舍五入有关的问题)。

有没有办法强制FreeTDS将SQL数值/小数转换为python的decimal.Decimal,因为它应该是默认值?

回答

0

其实我发现了一个解决方法通过在ODBC连接字符串指定TDS_Version = 8.0,因为它是在这里指出: FreeTDS bug back from 2010

+2

需要注意的是TDS 8.0版本仅仅是7.1版本的别名,并指定8.0“,应避免因到未来的兼容性问题“(详情请见http://www.freetds.org/userguide/choosingtdsprotocol.htm))。 –