SQL Server 查询日期范围内一个月的总天数

2023-12-08

我有特定的日期范围,例如

From Date        To Date
---------------------------    
2012-11-10       2012-11-15
2012-11-21       2012-11-22
2012-11-30       2012-12-01

我想编写一个 SQL 查询来计算两个日期之间的总天数以及特定月份的总天数

我想要的输出是

No of days     month
--------------------
   9            11
   1            12

谁能帮我写这个 SQL 查询?


理想情况下,您有一个名为“日期”的表,其中包含您将使用的所有日期,例如1950 年到 2100 年。此查询将为您提供所需的结果:

  select dateadd(m,datediff(m, 0, d.thedate),0) themonth, count(1)
    from dates d
    join ranges r on d.thedate between r.[from date] and r.[to date]
group by datediff(m, 0, d.thedate)
order by themonth;

Result:

|   themonth | COLUMN_1 |
-------------------------
| 2012-11-01 |        9 |
| 2012-12-01 |        1 |

请注意,此查询不是仅将“11”或“12”显示为月份(如果范围超过 12 个月,则效果不佳,或者在跨越新的一年时无助于排序),而是显示第一天代替月份。

如果没有,您可以虚拟地创建一个dates根据下面的扩展查询,动态表:

;with dates(thedate) as (
  select dateadd(yy,years.number,0)+days.number
    from master..spt_values years
    join master..spt_values days
      on days.type='p' and days.number < datepart(dy,dateadd(yy,years.number+1,0)-1)
   where years.type='p' and years.number between 100 and 150
      -- note: 100-150 creates dates in the year range 2000-2050
      --       adjust as required
)
  select dateadd(m,datediff(m, 0, d.thedate),0) themonth, count(1)
    from dates d
    join ranges r on d.thedate between r.[from date] and r.[to date]
group by datediff(m, 0, d.thedate)
order by themonth;

完整的工作示例如下:SQL小提琴

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 查询日期范围内一个月的总天数 的相关文章

随机推荐

  • 通过 Google Maps API v3 访问 ExtendedData 信息

    我有一个 KML 文件 其中包含每个
  • D3 强制布局:如何强制一组节点停留在给定区域

    在 D3 力布局图中 我尝试根据节点组强制某些节点留在给定区域 有一个中心节点 该节点是固定的 我希望由红线连接的节点保留在屏幕高度的前 1 3 处 由描边线连接的节点保留在第二个 1 3 处 由蓝线连接的节点保留在最后 1 3 处 但我希
  • 是否可以在 x 轴(经度)上移动 geopandas 世界地图?

    我想知道是否有一种方法可以将 geopandas 世界地图集中在特定的经度点上 基本上 只是想将其移动约 5 10 度左右 上一个问题是几个月前发布的 但没有收到答案 想知道是否有人知道解决方案 stackoverflow 上原始问题的链接
  • 循环遍历具有特定扩展名的所有文件并对其执行某些操作

    这是我第一次使用 Linux shell 脚本 它看起来确实很强大 但我仍然有点困惑 我想循环遍历目录中具有特定扩展名的所有文件递归地 所有子目录 子子目录和 并通过在它们上运行可执行文件在原始文件的确切位置生成一个具有相同名称但扩展名不同
  • 从两列映射中对多对多关系进行分组

    我有一个 SQL 表 可以映射作者和书籍等内容 我想将链接的作者和书籍 同一作者撰写的书籍以及共同撰写一本书的作者 分组在一起 并确定这些组的规模有多大 例如 如果 J K 罗琳与朱诺 迪亚兹合写 朱诺 迪亚兹与扎迪 史密斯合写了一本书 那
  • 单击 UIWebView 上的链接时打开新的 UIViewController

    我发现这个线程符合我的问题 单击 UIWebView 中的链接会推送到 NavigationView 堆栈 但以下情况有所不同 我没有使用导航控制器 而是使用基于视图的应用程序在按下相应按钮时手动切换到不同的视图控制器 我没有使用链接 而是
  • Excel VBA:形状集合中的索引 = ZOrderPosition?

    工作表的 Shapes 集合中形状的索引是否始终与其 ZOrderPosition 相同 原则上不能直接查询给定形状的索引 我已经在少数情况下 最多 3000 个形状 验证了这一点 但我没有找到任何相关文档 我遍历了整个集合 询问 Inde
  • 无法解析 Spring 属性占位符

    我有我的配置
  • 将一个正则表达式匹配替换为另一个正则表达式匹配,反之亦然

    我需要替换为字符串foo bar foo bar bar foo all foo to bar和所有bar to foo 所以结果应该是这样的bar foo bar foo foo bar 我已经尝试过这种方式 library string
  • 如何使用 EF Core 2.2 将 JSON_VALUE 转换为 DateTime?

    我正在测绘JSON VALUE使用来自的技术如何编写DbFunction的翻译 由于 JSON 中并非所有值都是字符串 因此有时需要进行转换 当转换为int 一切安好 var results context Set
  • JasperReports:如何屏蔽或过滤图表轴上的标签

    我正在使用基于简单数据集的简单面积图 如下所示 DateTime sql timestamp Value Integer 2012 02 17 00 02 02 100 2012 02 17 00 02 08 110 2012 02 17
  • `margin:auto;` 不适用于内联块元素

    我有一个 容器 div我给了margin auto 只要我给它一个特定的 它就工作得很好width 但现在我把它改为inline block and margin auto 停止工作 旧代码 有效 container border 1px
  • Java 非最终 int(s) 构造后可见

    我有一个带有非最终 int 变量的 java 类 我在构造函数中将其显式初始化为 0 对该变量的所有其他访问均由 ReentrantLock 管理 我是否需要担心线程不会看到初始值 0 因为我没有在构造函数中使用锁 是的 你必须担心 为了避
  • 如何通过命令提示符获取硬件 ID/序列号?

    最终我将在 Java Applet 中使用它来为用户提供额外的安全性 我知道这是可能的 因为我记得以前做过 只是不记得获取正确信息的行 我正在寻找将返回处理器 ID 序列号的行 只要这两个就好了 我使用过谷歌并尝试了一些命令 例如 wmic
  • SQL Server 2005 中使用 XML 的层次结构

    我想知道是否有办法在 SQL Server 2005 中选择层次结构并返回 xml 格式 我有一个包含大量数据的数据库 大约 2000 到 3000 条记录 我现在使用 SQL Server 2005 中的一个函数来检索层次结构中的数据并返
  • C#中如何获取IP地址?

    假设一台计算机连接到许多网络 实际上不止一个 我可以获得一个IP地址列表 其中包括计算机在网络中拥有的所有IP地址 但是我如何知道某个IP地址属于哪个网络呢 首先 您需要了解一些术语 这些示例数字假定 IPv4 网络 IP地址 192 16
  • 如何为 Json.net 生成 json 对象的所有可能的 LINQ 字符串?

    在 json net 中 我们可以使用基于 linq to json 的本教程 我想知道有没有办法生成字符串查询 考虑这个 json 示例 Name Test Status S1 S2 S3 S4 People Name A Family
  • 使用facet_wrap向ggplot添加图例

    我在用小面包裹显示两个变量 a and b 四个城市 我可以根据城市对图进行分组 但无法显示变量的图例 即a and b using scale color discrete ggplot geom line data df aes x y
  • Angular 7 - 重新加载数据表中的数据

    我正在使用 Angular 7 和 Angular Datatables 我正在尝试定义一个 重新渲染 按钮以重新加载数据就像这个例子一样 我不明白应该在渲染函数中放置什么 我的API函数 fn getFavoriteTables this
  • SQL Server 查询日期范围内一个月的总天数

    我有特定的日期范围 例如 From Date To Date 2012 11 10 2012 11 15 2012 11 21 2012 11 22 2012 11 30 2012 12 01 我想编写一个 SQL 查询来计算两个日期之间的