在sql中大于和小于等于?

时间:2013-09-16 09:39:32

标签: sql sql-server sql-server-2008 tsql

  

我如何使用大于等于和小于等于而不是在SQL中使用

我正在检查sql中的日期变量

我试过这样。

Date between coalesce(@fromDate,Date) and coalesce(@toDate,Date) 

但是如果用户没有输入任何日期(fromDate或toDate)

因此我需要在greater than equal to and less than equal to

中转换上述条件

请帮助sql中的语法。 感谢

4 个答案:

答案 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