如何将 Pandas datetime64[ns] 值填充到 MS Access

How to populate Pandas datetime64[ns] values into MS Access

我有几个具有 Order_date 列的 DataFrame。在所有 DataFrame 中,Order_date 列的数据类型都是 datetime64[ns]。请注意,这些列填充了有效日期和 NaT 值。

打印时 Order_date 列的示例:

   Order_date

1 2017-01-01 2 NaT 3 NaT 4 NaT 5 2017-10-22

我正在尝试通过 pyodbc.

将这些数据帧列填充到 MS Access table

我收到以下错误:

pyodbc.DataError: ('22008', '[22008] [Microsoft][ODBC Microsoft Access Driver]日期时间字段溢出 (SQLExecDirectW)')

经过研究,我注意到 MS Access 2016 的 Date/Time 数据类型对应于 ODBC 数据类型 SQL_TIMESTAMP

所以,我尝试了以下方法将 datetime64[ns] 转换为 SQL_TIMESTAMP:

import datetime
cursor.execute("SQL statement...VALUES(?)", datetime.datetime(order_date))  

但是,我得到这个错误:TypeError:需要一个整数(得到类型时间戳)。

如何才能将 Pandas/Numpy datetime64[ns] 值成功填充到 MS Access table 中?如何将 datetime64[ns] 值转换为 SQL_TIMESTAMP?

IIUC - 你快到了。您只需将 pd.to_datetime 返回的系列分配回列:

df['Order_date'] = pd.to_datetime(df['Order_date'], errors='coerce')