sql-server – 运算符>与SQL Server 2012中的> =不同

前端之家收集整理的这篇文章主要介绍了sql-server – 运算符>与SQL Server 2012中的> =不同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
完全偶然的今天我运行了一个sql语句按日期过滤一些项目,为简单起见,我们会说我用过
SELECT * 
FROM [TableName] 
WHERE [RecordCreated] >+ '2016-04-10'

只有在声明完成后我才意识到我曾使用过>而不是> =,现在我感到困惑,因为我预期会出现错误.

我尝试了其他一些变体,例如

>- -- Throws an error
<+ -- Ran successfully
<- -- Throws an error

无论我使用> =还是>,返回的行数都完全相同

在线搜索后,我找不到任何直接涵盖此语法的文档,只有当两个运算符分开使用时才会找到.

RecordCreated列是日期时间.

对于可能的常见错误,这只是一个非常精确的语法,还是可能尝试将日期转换为数值?

解决方法

这似乎是”操作符的错误.

根据微软团队的更新,

After some investigation,this behavior is by design since + is an
unary operator. So the parser accepts “+,and the ‘+’ is
simply ignored in this case. Changing this behavior has lot of
backward compatibility implications so we don’t intend to change it &
the fix will introduce unnecessary changes for application code.

你可以在RGO到他自己的问题here找到一个非常好的答案.

原文链接:/mssql/76837.html

猜你在找的MsSQL相关文章