我正在尝试执行查询以将两个值插入 Access 数据库中的一个简单表中。但我收到此错误:
pyodbc.ProgrammingError:(‘42000’,’[42000] [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句中出现语法错误。(-3502)(SQLExecDirectW)’)
我应该如何写日期格式?我的代码如下(该代码仅使用整数进行插入,因此我认为我的日期格式不正确):
import pyodbc conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\Users\behdad\Documents\Database1.accdb;') cursor = conn.cursor() cursor.execute("insert into Table1 (date, number) VALUES( '2021-02-05 00:00:00', 24)")
你的代码中遇到的错误通常是由于日期格式不符合 Microsoft Access 数据库的要求。Access 使用特定的日期格式来处理日期值。
日期格式:在 Access 中,日期值应该用 # 符号括起来,而不是使用单引号 '。此外,日期格式应为 MM/DD/YYYY 或 YYYY-MM-DD(不过 MM/DD/YYYY 更常见于美国区域设置)。
#
'
MM/DD/YYYY
YYYY-MM-DD
修正代码:你可以按照以下方式调整代码:
import pyodbc # 连接到数据库 conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\Users\behdad\Documents\Database1.accdb;') cursor = conn.cursor() # 执行插入操作,确保日期格式正确 cursor.execute("INSERT INTO Table1 (date, number) VALUES(#2021-02-05#, 24)") # 提交更改并关闭连接 conn.commit() conn.close()
#2021-02-05#
conn.commit()
try: # 执行数据库操作 conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\Users\behdad\Documents\Database1.accdb;') cursor = conn.cursor() cursor.execute("INSERT INTO Table1 (date, number) VALUES(#2021-02-05#, 24)") conn.commit() except Exception as e: print("Error:", e) finally: conn.close()
这会确保即使出现错误,连接也会在最后被关闭。
试试看这个修改,应该能解决你遇到的问题!