[英]greater than and less than equals to in sql?
如何在SQL中使用大于等于和小于等于代替
我正在检查SQL中的日期变量
我试图这样。
Date between coalesce(@fromDate,Date) and coalesce(@toDate,Date)
但如果用户未输入任何日期(fromDate或toDate)
因此我需要将上述条件转换为greater than equal to and less than equal to
请帮助在SQL语法。 谢谢
IF @fromDate IS NULL
BEGIN
SET @fromDate = '1900-01-01';
END;
IF @toDate IS NULL
BEGIN
SET @toDate = '2099-01-01';
END;
SELECT things
FROM table
WHERE date_field BETWEEN @toDate AND @fromDate;
这段代码实际上将为您提供任意大范围的检查范围,该范围应能为您提供合理的性能并返回所有结果(假设这是您不希望提供任何值时想要的结果)。
该代码可以简化为:
SELECT things
FROM table
WHERE date_field BETWEEN Coalesce(@toDate, '1900-01-01') AND Coalesce(@fromDate, '2099-01-01');
但是我保留了详细的版本进行说明。
尝试这个
SELECT Date FROM TableName WHERE Date > @fromDate AND Date < @toDate
SELECT *
FROM dbo.Account AS a
WHERE 1 = 1
AND (
@toDate IS NULL
OR a.CreateDate <= @toDate
)
AND (
@fromDate IS NULL
OR a.CreateDate >= @fromDate
)
请注意,只有1 = 1可以使条件清楚,并且完全不需要。
这应该是where子句的样子。
Where
Date >= @fromDate
And
Date <= @toDate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.