在Sql Server中的两个日期条件之间

时间:2014-03-01 11:17:33

标签: sql sql-server date

我有一个名为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

3 个答案:

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