繁体   English   中英

大于和小于等于在SQL?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM