Pyodbc数字的默认类型

时间:2012-06-13 15:06:07

标签: python sql-server types pyodbc pandas

我正在使用pyodbc从SQL Server查询数据,然后在pandas中对其执行操作。我注意到的是一些计算的数字列返回十进制.Decimal和其他返回为float。这是有问题的,因为算术操作数不能对两种不同类型的结果执行。

解决问题的最佳方法是什么?是否有pydobc设置强制decimal.Decimal浮动?我应该自己进行转换吗?还有别的吗?

2 个答案:

答案 0 :(得分:2)

Here是转换表(在Python 2.x和3.x的Results标题下),详细说明了ODBC和Python数据类型之间的转换。

@ {Aaron的答案中提到的CAST结果,或更改数据库中的源数据类型。

通过更多细节(特定列数据类型,样本数据,数据库更改的灵活性),我们可以帮助确定哪个选项最佳。

答案 1 :(得分:1)

如果您编写了查询,我建议您只使用CAST来控制数据类型。我总是在SQL Server中显式地转换计算列

SELECT CAST(ColumnA/ColumnB AS FLOAT) AS 'FieldA' FROM Table