0

我正在将数据框中的所有记录上传到 SQL Server 表,但 to_sql 似乎是舍入日期时间值。IE:

assignee created_date        updated_date
my_name  2019-09-16 14:17:23 2019-11-26 14:48:39.261

两个日期都设置为 datetime64[ns]。然后,我调用以下方法:

df.to_sql(MY_TABLE_NAME, engine, if_exists='append', index=False, dtype=dtypes)

dtypes 的内容如下:

{'assignee': NVARCHAR(length=255), 'created_date': <class 'sqlalchemy.sql.sqltypes.DateTime'>, 'updated_date': <class 'sqlalchemy.sql.sqltypes.DateTime'>}

当我查看 SQL Server 中的更新数据时,我得到以下 updated_date:

2019-11-26 14:48:39.260

并且正确的 updated_date 是(261 而不是 260):

2019-11-26 14:48:39.261 

任何想法为什么会发生这种情况?

感谢大家!

4

1 回答 1

0

这里的解决方法是将浮点数重新映射为双精度数。以下是有关此问题的一些历史的一些链接。看来这是与 sqlalchemy 的差异以及它在键入方面如何与 SQL 风格交互的结果。

链接到 Stack Overflow 上的相关问题

链接到 Pandas 上的 Git 问题线程

于 2020-01-16T14:45:38.663 回答