我如何使用大于等于和小于等于而不是在SQL中使用
我正在检查sql中的日期变量
我试过这样。
Date between coalesce(@fromDate,Date) and coalesce(@toDate,Date)
但是如果用户没有输入任何日期(fromDate或toDate)
因此我需要在greater than equal to and less than equal to
请帮助sql中的语法。 感谢
答案 0 :(得分:3)
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');
但我保留了详细的版本来说明。
答案 1 :(得分:1)
试试这个
SELECT Date FROM TableName WHERE Date > @fromDate AND Date < @toDate
答案 2 :(得分:1)
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只是为了使条件明确,绝不需要。
答案 3 :(得分:0)
这应该是where子句的样子。
Where
Date >= @fromDate
And
Date <= @toDate