加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 07:25:38 所属栏目:MsSql教程 来源:网络整理
导读:完全偶然的今天我运行了一个SQL语句按日期过滤一些项目,为简单起见,我们会说我用过 SELECT * FROM [TableName] WHERE [RecordCreated] + '2016-04-10' 只有在声明完成后我才意识到我曾使用过而不是 =,现在我感到困惑,因为我预期会出现错误. 我尝试了其他一些
完全偶然的今天我运行了一个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找到一个非常好的答案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读