使用pyodbc检索SQL Server数据会返回意外的数据值



我正在学习Python,并编写了一些代码来从SQL Server表中检索数据。代码如下:

import pyodbc
connection = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
"Server=xxx"
"Database=xxx"
"uid=xxx"
"pwd=xxx"
)
cursor = connection.cursor()
cursor.execute('SELECT * FROM Dealers')
for row in cursor:
print(list(row))

这段代码运行良好,但对于某些数据类型,输出并不是我所期望的。例如,我有一行输出如下:

Decimal('0.000'), Decimal('83.360'), True, True, Decimal('0.000'), datetime.date(2017, 5, 31), True, 1, True, True, datetime.datetime(2017, 5, 31, 18, 28, 57, 686666)

与Decimal("83.360"(不同,我如何简单地得到83.360?日期/时间值相同?

Decimal('83.360')datetime.date(2017, 5, 31)Decimal对象和datetime.date对象的默认表示(repr()(。如果你想要";仅83.360和2017-05-31";然后您可以对它们调用str()(而不是repr()(,您将获得该值的字符串表示。然而,请注意

x = str(Decimal('83.360'))

将导致x是str,即它将失去其编号性,因此

y = x + 1

导致错误('TypeError:只能将str(而不是"int"(连接到str'(,而不是84.360

相关内容

  • 没有找到相关文章

最新更新