小编Asf*_*asi的帖子

使用 pandas 将行插入 Microsoft SQL Server 会引发精度错误

我正在尝试将数据插入到 mssql 数据库中。我需要快速方法,因此我将 fast_executemany 参数设置为 true。上传在大多数情况下工作正常,但如果其中一列是带有时区的日期时间,它会崩溃并引发:(pyodbc.Error) ('HY104', '[HY104] [Microsoft][ODBC Driver 17 for SQL Server]Invalid precision value (0) (SQLBindParameter)') 如果我使用 fast_executemany 作为 False 插入相同的数据,那么一切都会完美运行。有没有人遇到过类似的问题或知道可能是什么问题?

示例代码

from sqlalchemy import create_engine, engine
import pytz
import pandas as pd
from sqlalchemy.dialects.mssql import DATETIMEOFFSET
import datetime


engine_url = engine.URL.create(
            drivername='mssql',
            username='admin',
            password='**',
            host='**',
            port='1433',
            database='mytestdb1',
            query={'driver': "ODBC Driver 17 for SQL Server"}
        )
mssql_engine = create_engine(engine_url, echo=False, fast_executemany=True)



base = datetime.datetime.today().replace(tzinfo=pytz.utc)
date_list = [base - datetime.timedelta(days=x) for x in range(20)]
df = pd.DataFrame(date_list, columns …
Run Code Online (Sandbox Code Playgroud)

python sql-server sqlalchemy pyodbc pandas

6
推荐指数
2
解决办法
7952
查看次数

标签 统计

pandas ×1

pyodbc ×1

python ×1

sql-server ×1

sqlalchemy ×1