【发布时间】:2016-01-21 16:16:19
【问题描述】:
我正在尝试使用 Python 中的 pyodbc 库将带有日期的数据插入 MS Access。我的表有 3 个字段:日期(日期/时间)、1Y(数字)和 2Y(数字)。我知道问题不是连接问题,因为我可以在没有 Date 字段的情况下成功插入。例如,这有效:
cursor.execute("insert into test(1Y,2Y) values (?,?)",'3','4')
现在包括日期,我试过了:
cursor.execute("insert into test(Date,1Y,2Y) values (?,?,?)",'2010-01-01','3','4')
cursor.execute("insert into test(Date,1Y,2Y) values (?,?,?)",date(2010,1,1),'3','4')
cursor.execute("insert into test(Date,1Y,2Y) values (?,?,?)",'1/1/2010','3','4')
对于上述日期示例,我收到以下错误: ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句中的语法错误。(-3502) (SQLExecDirectW)')
我正在使用 Python 2.7、MS Access 2013、pyodbc 2.7。谢谢。
【问题讨论】:
-
请格式化您的代码..
-
Date是reserved word,您需要对其进行转义才能将其用作列名。 -
@mata 就是这样,一旦重命名日期,上述所有三个版本都可以工作。谢谢。
标签: python date sql-insert ms-access-2013 pyodbc