我们有一个包含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
我该怎么做?
答案 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;