在 Python 中写入 SQL 语句时出现列名无效的错误
Getting error that invalid column name while writing SQL statement in Python
我正在尝试在 Python 中编写 SQL 语句:'attribute' 是一个列名称,我想更改其格式并将其作为参数提供。因为它的名字可以不同。
cur.execute("SELECT DATEADD(y," + attribute + ", '1980-01-01')")
但是我遇到了以下错误。 attribute=Date1 且此列存在。
[42S22] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name 'Date1'. (207) (SQLExecDirectW)"
如果我没有正确理解您的代码,那么您就是在 cur.execute
命令中构建字符串。如果您的 python 是最新的,请尝试使用 fstrings。它们更具可读性,并且您不会看到带有所有引号的混乱代码。如果您的 python 版本不支持子字符串,请尝试在变量中构建请求以使代码更具可读性。
可能的解决方案:
cur.execute(f"SELECT DATEADD(y, {attribute}, '1980-01-01')")
该字符串将导致 SELECT DATEADD(y, Date1, '1980-01-01')
查询中还缺少一个 FROM
,错误 Invalid column
是正确的,因为您没有告诉在哪里可以找到该列
我正在尝试在 Python 中编写 SQL 语句:'attribute' 是一个列名称,我想更改其格式并将其作为参数提供。因为它的名字可以不同。
cur.execute("SELECT DATEADD(y," + attribute + ", '1980-01-01')")
但是我遇到了以下错误。 attribute=Date1 且此列存在。
[42S22] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name 'Date1'. (207) (SQLExecDirectW)"
如果我没有正确理解您的代码,那么您就是在 cur.execute
命令中构建字符串。如果您的 python 是最新的,请尝试使用 fstrings。它们更具可读性,并且您不会看到带有所有引号的混乱代码。如果您的 python 版本不支持子字符串,请尝试在变量中构建请求以使代码更具可读性。
可能的解决方案:
cur.execute(f"SELECT DATEADD(y, {attribute}, '1980-01-01')")
该字符串将导致 SELECT DATEADD(y, Date1, '1980-01-01')
查询中还缺少一个 FROM
,错误 Invalid column
是正确的,因为您没有告诉在哪里可以找到该列