我尝试在TSQL中转换此功能,但我不知道如何替换|| TSQL中的运算符。 MS SQL是否具有||的等效项?
private bool intersects(DateTime r1start, DateTime r1end,
DateTime r2start, DateTime r2end)
{
return (r1start == r2start)
|| (r1start > r2start ?
r1start <= r2end : r2start <= r1end);
}
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
答案 0 :(得分:6)
你可以简化整个事情。这应该找到r1和r2是否相交:
IF (@r1start <= @r2end AND @r1end >= @r2start)
RETURN 1
ELSE
RETURN 0
答案 1 :(得分:0)
TSQL中的等效运算符只是单词or
。
答案 2 :(得分:0)
在sql server 2012中,您可以使用IIF
declare @ret int
select @ret = iif(@r1start <= @r2end and @r1end >= @r2start, 1, 0)
return @ret