TSQL 查询中奇怪的条件语法:“<=+” 它有什么作用?

use*_*903 9 sql-server t-sql case

我正在努力诊断 TSQL 中遗留查询的问题。查询中返回的列之一是:

CASE WHEN PaidDate >= '2021-01-01' AND PaidDate <=+'2021-10-31' THEN WO ELSE 0 END AS dYTDWO, 
Run Code Online (Sandbox Code Playgroud)

我以前没有见过“<=+”作为条件,并且在网上找不到任何对此的参考。

谁能对此做出解释?SSMS 对此非常满意,并且查询得以执行。

谢谢。

mus*_*cio 15

TLDR:这可能是一个拼写错误1 ​​。

AND PaidDate <=+ '2021-10-31'被解析为AND PaidDate <= (+'2021-10-31'),并且一元加号不会改变任何东西,所以......

我在猜测,但这可能有其根源强调我的):

尽管一元加号可以出现在任何数值表达式之前,但它不对表达式返回的值执行任何操作

然后他们一定会想,无论如何,一元加号对于任何非数字数据类型都没有意义,所以我们为什么不将其完全变成无操作,而不是提出特定于数据类型的错误处理。

就这样,一元加上你想要的任何东西。


附言。SELECT ++++6++++++++++++++++++++++++++++5正确地返回 11,因为它只是SELECT (++++6)+(+++++++++++++++++++++++++++5), 与 相同SELECT 6+5


1 - 请注意“=”和“+”位于同一个键上。