我尝试使用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')
对于带有Date的上述示例,我收到以下错误: ProgrammingError:(' 42000',' [42000] [Microsoft] [ODBC Microsoft Access驱动程序] INSERT INTO语句中的语法错误。( - 3502)(SQLExecDirectW)')
我使用的是Python 2.7,MS Access 2013,pyodbc 2.7。谢谢。
答案 0 :(得分:3)
要在Access SQL中使用reserved word之类的Date
作为列名或表名,必须用方括号括起来,例如
INSERT INTO TableName ([Date]) VALUES ...
答案 1 :(得分:0)
如果它为您处理合格字段,这可能不适用于Python,但是,在某些其他语言中,要在Access表中插入Date值,您需要使用#字符来限定它们,即#01/21/2016#。