FreeTDS 将 MS SQL 货币类型转换为 python float,而不是 Decimal
我正在 Linux 中从 Python 连接到 MS SQL Server 数据库。我使用 FreeTDS 驱动程序通过 pyodbc 连接。当我从 MSSQL 返回资金字段时,它以浮点数形式出现,而不是 Python 小数。
问题出在 FreeTDS 上。如果我从 Windows 运行完全相同的 Python 代码(我不需要使用 FreeTDS),pyodbc 将返回 Python Decimal。
当我在 Linux 中运行代码时,如何取回 Python Decimal?
I am connecting to an MS SQL Server db from Python in Linux. I am connecting via pyodbc using the FreeTDS driver. When I return a money field from MSSQL it comes through as a float, rather than a Python Decimal.
The problem is with FreeTDS. If I run the exact same Python code from Windows (where I do not need to use FreeTDS), pyodbc returns a Python Decimal.
How can I get back a Python Decimal when I'm running the code in Linux?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当它返回时,您总是可以将其转换为十进制......
You could always just convert it to Decimal when it comes back...
这是 FreeTDS 中的一个错误。截至 2010 年 8 月 4 日,该错误已在 FreeTDS 的 CVS 头中修复(感谢 Freddy Ziglio)。有关详细信息,请参阅 web2py 留言板上的我的帖子。
It was a bug in FreeTDS. The bug has been fixed in the CVS head of FreeTDS as of August 4, 2010 (thanks Freddy Ziglio). See my post on the web2py message board for more info.