查询datetime类型字段日期数据时出现'='附近语法错误求助
问题分析与解决
你的SQL语句语法错误出在WHERE子句,连续使用了两个等号,SQL不支持这种逻辑写法。正确的思路是将registrado字段转换为DATE类型后,与目标日期'2022-10-20'做比较,或者使用日期范围匹配全天记录(这种写法更利于索引利用,性能更优)。
正确写法1:转换字段类型匹配日期
SELECT * FROM dbo.Clientes WHERE CONVERT(DATE, registrado) = '2022-10-20' ORDER BY ID DESC
正确写法2:使用日期范围(推荐,适合有索引的场景)
如果registrado字段建有索引,上面的写法会因使用函数导致索引失效,推荐用范围查询匹配当天0点到次日0点的所有记录:
SELECT * FROM dbo.Clientes WHERE registrado >= '2022-10-20' AND registrado < '2022-10-21' ORDER BY ID DESC
错误提示翻译:
Msg 102, Level 15, State 1, Line 3
语法错误,靠近'='符号
内容的提问来源于stack exchange,提问作者Alexandra
相关产品推荐
相关产品推荐

