有没有办法检索日期间隔为行ms-sql?

时间:2016-08-03 22:10:02

标签: sql-server

我正在尝试查询以了解员工哪些日子没有工作。

例如:

如果我检索 21/07 25/07 之间的所有日期,该员工的工作情况我将会有类似的内容:

21/07/2016
22/07/2016
23/07/2016
25/07/2016

但是我想要他没有工作的日子。在这种情况下,它 24/07

我正在寻找解决方案,我的想法是检索日期间隔的子查询,但是在上面的查询中执行不包含的行。

示例:

SELECT MyDate 
FROM MyTable
WHERE MyDate between 21-07 and 25-05
and MyDate not in 
**(the subquery here)**

任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:-2)

最好的方法是不存在,您需要查询具有所有可能日期值的表:

SELECT ALLDATECOLUMN FROM ALLDATES
WHERE 
NOT EXISTS (SELECT 1 FROM MYDATES WHERE MYDATES = ALLDATECOLUMN)
AND ALLDATECOLUMN BETWEEN 21-07 AND 25-05