我正忙于使用 Python 的 pymssql 查詢 SQL Server 資料庫,并且從以下查詢中得到了一個奇怪的結果
cursor = conn.cursor()
cursor.execute("select current_value from sys.sequences where name = 'testSequence'")
currentValue = cursor.fetchone()[0]
cursor.close()
print(currentValue)
列印中的值顯示為 b'.\x00\x00\x00\x00\x00\x00\x00'
然后當我嘗試將位元組轉換為整數時
currentValue = int.from_bytes(cursor.fetchone()[0], byteorder="big")
我得到了一個大得驚人的數字 3530822107858468864
在 SQL Server Studio 中執行完全相同的查詢,我可以看到實際current_value只有40. 我做的轉換錯誤還是有什么我沒有看到的?
筆記
只需額外提及我正在使用 Python3(以防有人看不到標簽)
uj5u.com熱心網友回復:
Bigint 轉換為 float64,您可以使用 CAST 和 VARCHAR 并繞過它
cursor = conn.cursor()
cursor.execute("select CAST(current_value AS VARCHAR(20)) AS current_value from sys.sequences where name = 'testSequence'")
currentValue = cursor.fetchone()[0]
cursor.close()
print(currentValue)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322815.html
上一篇:聚合可能不會出現在SQLServer中執行指令的UPDATE陳述句的集合串列中
下一篇:從兩個不同的表中找到最小值最大值
