Does MS SQL Server's “between” include the range boundaries?

前端 未结 8 2135
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-27 10:53

For instance can

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10

select 5 and 10 or they are excluded from the range?

相关标签:
8条回答
  • 2020-11-27 11:40

    Real world example from SQL Server 2008.

    Source data:

    ID    Start
    1     2010-04-30 00:00:01.000
    2     2010-04-02 00:00:00.000
    3     2010-05-01 00:00:00.000
    4     2010-07-31 00:00:00.000
    

    Query:

    SELECT
        *
    FROM
        tbl
    WHERE
        Start BETWEEN '2010-04-01 00:00:00' AND '2010-05-01 00:00:00'
    

    Results:

    ID    Start
    1     2010-04-30 00:00:01.000
    2     2010-04-02 00:00:00.000
    

    alt text

    0 讨论(0)
  • 2020-11-27 11:41

    BETWEEN (Transact-SQL)

    Specifies a(n) (inclusive) range to test.

    test_expression [ NOT ] BETWEEN begin_expression AND end_expression
    

    Arguments

    test_expression
    

    Is the expression to test for in the range defined by begin_expression and end_expression. test_expression must be the same data type as both begin_expression and end_expression.

    NOT
    

    Specifies that the result of the predicate be negated.

    begin_expression
    

    Is any valid expression. begin_expression must be the same data type as both test_expression and end_expression.

    end_expression
    

    Is any valid expression. end_expression must be the same data type as both test_expression and begin_expression.

    AND
    

    Acts as a placeholder that indicates test_expression should be within the range indicated by begin_expression and end_expression.

    Remarks

    To specify an exclusive range, use the greater than (>) and less than operators (<). If any input to the BETWEEN or NOT BETWEEN predicate is NULL, the result is UNKNOWN.

    Result Value

    BETWEEN returns TRUE if the value of test_expression is greater than or equal to the value of begin_expression and less than or equal to the value of end_expression.

    NOT BETWEEN returns TRUE if the value of test_expression is less than the value of begin_expression or greater than the value of end_expression.

    0 讨论(0)
提交回复
热议问题