我有几个具有 Order_date 列的DataFrame。在所有DataFrame中, Order_date 列的dtypes是datetime64 [ns]。请注意,这些列中包含有效日期和NaT值。
打印时Order_date列的外观示例:
Order_date
1 2017-01-01
2 NaT
3 NaT
4 NaT
5 2017-10-22
我正在尝试通过pyodbc 将这些DataFrame列填充到MS Access表中。
我收到以下错误:
pyodbc.DataError:('22008','[22008] [Microsoft] [ODBC Microsoft Access驱动程序]日期时间字段溢出(SQLExecDirectW)')
经过研究,我注意到MS Access 2016的日期/时间数据类型与ODBC数据类型 SQL_TIMESTAMP 相对应。
所以,我尝试了以下命令将datetime64 [ns]转换为SQL_TIMESTAMP:
import datetime
cursor.execute("SQL statement...VALUES(?)", datetime.datetime(order_date))
但是,我收到此错误: TypeError:需要一个整数(获取类型Timestamp)。
如何成功将Pandas / Numpy datetime64 [ns]值填充到MS Access表中?如何将datetime64 [ns]值转换为SQL_TIMESTAMP?
答案 0 :(得分:0)
pd.to_datetime
返回的系列分配回列:
df['Order_date'] = pd.to_datetime(df['Order_date'], errors='coerce')