SQL 当我的代码看起来格式正确时,更新不断出现语法错误

SQL update keeps spitting syntax errors when my code seems properly formatted

我有这段代码试图用 ID = m 更新 date 列。 m 是一个整数,因为它应该是,对于 date 我已经尝试了 stringdatetime.date.

  sql = '''UPDATE DaByDay
           SET Date = ?
           WHERE ID = ?'''
  crsr.execute(sql, date, m)
  cnxn.commit()

但我不断得到

Traceback (most recent call last):
File "C:\Users\USERNAME\Desktop\database test.py", line 47, in
crsr.execute(sql, date, m)
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement. (-3503) (SQLExecDirectW)')

现在我该如何解决这个问题?

应避免使用保留字作为名称。日期是 Access 中的保留字。将字段名称括在方括号 [Date].

此外,如果名称使用space或特殊字符也用括号括起来。

可能与问题无关,但可以使用引号代替三撇号。

考虑到日期文字的正确语法是 'YYYY-MM-DD'(引号内)或#mm/dd/yyyy#(井号内),您应该尝试以这种方式提供。此外,Date 是 Access 中的保留字,您应该在其周围使用方括号。