【发布时间】:2020-09-09 11:56:50
【问题描述】:
我已经在这里查找过,但找不到解决我的问题的方法。我想从 4 个 accces 数据库中获取一个数据框,其中 2 个使用这个确切的代码,另外 2 个显示这个错误:
DataError: ('22007', '[22007] [Microsoft][ODBC-Treiber für Microsoft Access]Ungültiges Datetime-Format. bei Spaltennummer 11 (dtime) (35) (SQLGetData)')
每个数据库中的数据格式相同。请参阅下面的代码:
conn_str = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=C:\Users\hoho11.DE\Documents\WLTP_Datenbank\Database_JRC2_SE_UK.accdb;')
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
for table_info in cursor.tables(tableType='TABLE'):
print(table_info.table_name)
错误就在这里:
df_3 = pd.read_sql_query(sql='SELECT * FROM TB_cycles_car', con=conn)
df_3.head()
非常感谢您的支持!!
【问题讨论】:
-
能否提供一个小型示例数据库的下载链接,可用于重现该问题?
-
另外,请edit 确认您尝试读取的表是普通的本地 Access 表,而不是连接到其他文件格式的视图或链接表(例如, Excel 电子表格或 CSV 文件)。
-
我用 5.000 行生成了少量,但问题是代码可以使用它。它只是不适用于孔 accdb。我尝试将 accdb 导入另一个 accdb,但错误保持不变。我真的很困惑。
-
如果我删除 accdb 表中的 'dtime' 列,代码也能正常工作@GordThompson
-
如果您执行
rows = cursor.execute("SELECT * FROM TB_cycles_car").fetchall()...,您会收到错误吗?
标签: python pandas ms-access pyodbc