我正在尝试选择介于0和4之间的地铁值,我做错了什么?
SELECT
DATEDIFF(M, TheDate, TheOtherDate) AS MTR FROM MyTable
WHERE MyID = 2074163
AND MTR >= 0 OR MTR <= 4返回的结果包含地铁边界内外的值介于1和4之间(从-3到75)
交替
SELECT
DATEDIFF(M, TheDate, TheOtherDate) AS MTR FROM MyTable
WHERE MyID = 2074163
and MTR BETWEEN 0 AND 4还返回的结果为0、-2、-3和-4 -但不大于0和小于4(除0项外)。
发布于 2012-09-11 03:36:59
正确的语法是:
SELECT DATEDIFF(M, TheDate, TheOtherDate) AS MTR
FROM MyTable
WHERE MyID = 2074163 AND (
DATEDIFF(M, TheDate, TheOtherDate) >= 0 AND
DATEDIFF(M, TheDate, TheOtherDate) <= 4
)发布于 2012-09-11 13:23:43
Ypercube的评论是相关的。根据标准,在MTR子句中对WHERE的引用应该被标记为无效。但除此之外,您认为MTR的哪个值将使OR评估为false?
https://dba.stackexchange.com/questions/24074
复制相似问题