SQL(SQLServer)中的函数前的连字符的用途是什么

Cha*_*ing 1 sql sql-server function unary-function

我想找出在调用括在括号中的SQL函数之前包含连字符时,SQL语法背后的逻辑是什么。

这是SQL:

IF (@StartDate > @EndDate)
BEGIN
    SET @EndDate = @StartDate
    SET @StartDate = @EndDate
END

DECLARE @nonworkingweekdays int

--now deal with public holidays
SELECT @nonworkingweekdays = count("Date") from 
(
    select distinct
    (
    CASE datepart(weekday,date)
            WHEN 1 THEN null --ignore sundays   
            WHEN 7 THEN null --ignore saturdays
            else "Date"
    END
    ) AS "date" 
    from publicholidays
) nonworkingweekdays 
WHERE 
"Date" is not null and 
"Date" between @StartDate and DATEADD(day, -1, @EndDate)

RETURN
    CASE WHEN @StartDate <= @EndDate
    THEN
        dbo.FullWeekDays(@StartDate, @EndDate) - @nonworkingweekdays
    ELSE
        -(dbo.FullWeekDays(@StartDate, @EndDate) - @nonworkingweekdays)
    END 
Run Code Online (Sandbox Code Playgroud)

我感到困惑的逻辑是在else语句和此脚本底部的return语句中。

提前致谢 :)

Dav*_*oft 5

这是TSQL 一元负运算符

返回数值表达式的值的负数(一元运算符)。一元运算符仅对数字数据类型类别的任何一种数据类型的一个表达式执行操作。