我有一个名为Master
的表,我需要根据@FromDate
和@Todate
之间的用户输入所有匹配日期的所有可能记录....
主表:
ID FromDate ToDate
1 18/03/2014 18/03/2014
2 01/03/2014 05/03/2014
3 06/03/2014 08/03/2014
我的查询:
select ID
from master M
where M.FromDate between('10/03/2014') and ('17/03/2014')
or M.ToDate between ('10/03/2014') and ('17/03/2014')
用户输入:
FromDate ToDate
01/03/2014 06/03/2014
01/03/2014 31/03/2014
09/03/2014 09/03/2014
预期输出:
2,3
1,2,3
No Records
答案 0 :(得分:5)
我得到了解决方案:
SELECT ID
FROM master M
WHERE ((M.FromDate BETWEEN '10/03/2014' AND '17/03/2014')
OR (M.ToDate BETWEEN '10/03/2014' AND '17/03/2014'))
括号在Sql Server中非常重要.....
答案 1 :(得分:0)
试试这个
select ID from master M where (M.FromDate>='10/03/2014' M.FromDate<'17/03/2014') or (M.ToDate>='10/03/2014' and M.ToDate<'17/03/2014');
答案 2 :(得分:0)
你忘记了括号...... SQL会发现哪个条件很难......
SELECT ID
FROM master M
WHERE (M.FromDate BETWEEN '10/03/2014' AND '17/03/2014')
OR (M.ToDate BETWEEN '10/03/2014' AND '17/03/2014')