熊猫to_sql舍入datetime列

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

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

正确的update_date是(261而不是260):

2019-11-26 14:48:39.261 

任何想法为什么会这样?

谢谢大家!

zilan112 回答:熊猫to_sql舍入datetime列

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

Link to related question on Stack Overflow

Link to Git Issue Thread on Pandas

本文链接:https://www.f2er.com/2759548.html

大家都在问