FreeTDS 将 MS SQL 货币类型转换为 python float,而不是 Decimal

发布于 2024-09-12 07:28:02 字数 263 浏览 3 评论 0原文

我正在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

新人笑 2024-09-19 07:28:02

当它返回时,您总是可以将其转换为十进制......

You could always just convert it to Decimal when it comes back...

一袭白衣梦中忆 2024-09-19 07:28:02

这是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文