【发布时间】:2020-11-17 02:33:22
【问题描述】:
我正在使用 Pyodbc 访问 Microsoft SQL Server 数据库。我在代码中构建了以下查询:
SELECT created, transactionID, balanceEffect
FROM dbo.table
WHERE (SELECT YEAR(created) = 2020)
AND (SELECT MONTH(created) = 11)
AND (SELECT DAY(created) = 17)
AND balanceEffect > 0
AND TransactionTypeID = '1321837129837129213'
ORDER BY created
其中created 是DATE 列。
当它开始执行查询时,我看到以下错误:
ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]'=' 附近的语法不正确。(102) (SQLExecDirectW); [42000] [Microsoft][SQL服务器 Native Client 11.0][SQL Server]'=' 附近的语法不正确。(102); [42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]'=' 附近的语法不正确。(102)")
子查询的东西似乎有问题。我一直无法在网上找到类似的问题,我相信这段代码(或一段非常相似的代码)以前在这个项目中工作过。有人知道是什么原因造成的吗?
【问题讨论】:
-
您不需要子查询。就
WHERE YEAR(created) == 2020 AND ...