【问题标题】:Is there a way to retrieve a interval of dates as rows ms-sql? [duplicate]有没有办法将日期间隔检索为行 ms-sql? [复制]
【发布时间】:2016-08-03 22:10:01
【问题描述】:

我正在尝试查询某个员工哪些天没有工作。

例如:

如果我检索员工工作的 21/0725/07 之间的所有日期,我会得到类似的结果:

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

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

我正在寻找一个解决方案,我的想法是做一个子查询来检索一个日期间隔,但是作为行来做一个 not contains 在上面的查询中。

例子:

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

有人可以帮忙吗?

【问题讨论】:

    标签: sql-server


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多