У меня есть таблица базы данных 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)