在MSSQL中转换单行if语句

Max*_*ime 1 t-sql sql-server

我尝试在TSQL中转换此函数但我不知道如何替换|| TSQL中的运算符.MS SQL是否具有||的等效项 ?

  private bool intersects(DateTime r1start, DateTime r1end,
                        DateTime r2start, DateTime r2end)
    {
        return (r1start == r2start)
            || (r1start > r2start ?
                r1start <= r2end : r2start <= r1end);
    }
Run Code Online (Sandbox Code Playgroud)

T-SQL中的语法是否正常?

IF((@r1start=@r2start)or(@r1start>@r2start))
BEGIN
    IF(@r1start<=@r2end)
        return 1;
    ELSE
        return 0;
END
ELSE
BEGIN 
    IF(@r2start<=@r1end)
        return 1;
    ELSE
        return 0;
END
Run Code Online (Sandbox Code Playgroud)

Jim*_*Jim 6

你可以简化整个事情.这应该找到r1和r2是否相交:

IF (@r1start <= @r2end AND @r1end >= @r2start)
    RETURN 1
ELSE
    RETURN 0
Run Code Online (Sandbox Code Playgroud)