查找日期属于范围

时间:2016-06-08 12:08:16

标签: sql sql-server

我们有一个包含4列的表

Column 1: ID
column 2:EmpID
Column 3:startDate
Column 4:EndDate

DATA
 ID      EMPID       StartDate      EndDate
  1       223         2014-06-06    2014-06-10
  2       223         2014-08-11    2014-08-22
  1       224         2014-09-06    2014-09-10
  2       224         2014-12-11    2014-12-22

我想编写一个查询,根据特定日期是否属于特定员工的startDate和EndDate,返回true或false

示例如果我们传递empID 223和日期2014-08-13,则查询应返回true 但 如果我们通过empID 223和日期2014-08-23,则查询应返回false

我该怎么做?

2 个答案:

答案 0 :(得分:0)

SQL Server没有" true"和"假"内置。你可以像这样返回0/1:

select (case when count(*) > 0 then 1 else 0 end) as TrueIs1
from t
where empId = @empId and
      @date between StartDate and EndDate;

答案 1 :(得分:0)

SELECT CASE WHEN 
  empID = 223 AND '2014-08-23' BETWEEN StartDate AND EndDate
  THEN 'true'
  ELSE 'false'
END FROM data;