我正在将数据框中的所有记录上载到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
任何想法为什么会这样?
谢谢大家!
答案 0 :(得分:0)
此处的解决方法是将浮点数重新映射为双精度。以下是有关此问题的部分历史记录的一些链接。看来,这是sqlalchemy差异以及在类型方面它如何与SQL风格交互的结果。