Python и pyodbc с SQL Server. Как получить десятичные данные из SQL Server, когда точность увеличивается? - PullRequest
0 голосов
/ 11 июня 2019

У меня есть таблица базы данных SQL Server с двумя столбцами f1 & f2. Они определены в SQL Server как

f1 DECIMAL (10, 4)
f2 DECIMAL (13, 4)

Когда я выбираю использование python и pyodbc и загружаю данные с помощью:

(select f1 , f2 from table where condition) 
data = cursor.fetchone()

Я не получаю правильные данные для f2.

Данные сообщают f1 как Decimal('16.7300'), что является правильным.

f2 в базе данных имеет значение 40.000, но запрос возвращает Decimal('0.0000').

(Decimal('16.7300'), Decimal('0.0000'))

Я пробовал приведение к запросу

cast(f2 as decimal(13,4))

но запрос все еще возвращает 0.

Может кто-нибудь посоветовать, как вернуть правильное значение из базы данных, пожалуйста?

В ответ на @Panagiotis Kanavos вот точный код.

import pyodbc
conn = pyodbc.connect(driver ='{SQL Server}', server = 'ServerName', database = 'db')
cursor = conn.cursor()
sql = '''select f1 , f2 from dbo.Table where Company = 'Acme' '''
cursor.execute(sql)
data = cursor.fetchone()
print (data)
...