如何创建递归查询来获取两个日期之间的所有日期

2023-12-03

我想获取两个日期之间的所有日期arrival date and leaving date.

我尝试了递归查询,但没有成功。

;with dates as ( 
SELECT GuestID, ArrivalDate as reserveddate 
from dbo.Guest 
union all 
SELECT GuestID, dateadd (day,1,dbo.Guest. ArrivalDate) as reserveddate 
from dbo.Guest 
where dateadd (day,1,dbo.Guest. ArrivalDate) <dbo.Guest.leavingate
) 

SELECT * 
from dates 
option (maxrecursion 0)

您需要递归 CTE:

DECLARE  @arrival_date date = '2016-01-01',
         @leaving_date date = '2016-02-01'

;WITH cte AS (
SELECT @arrival_date as date_
UNION ALL
SELECT CAST(DATEADD(day,1,date_) as date)
FROM cte
WHERE date_ < @leaving_date
)

SELECT *
FROM cte
OPTION (MAXRECURSION 0)

Output:

date_
2016-01-01
2016-01-02
2016-01-03
...
2016-01-30
2016-01-31
2016-02-01

EDIT1

根据您的样本:

;WITH cte AS (
SELECT GuestID, CAST(ArrivalDate as date) as date_
FROM Guests
UNION ALL
SELECT c.GuestID, CAST(DATEADD(day,1,date_) as date)
FROM cte c
INNER JOIN Guests g
    ON g.GuestID = c.GuestID
WHERE date_ < g.LeavingDate
)

SELECT *
FROM cte
ORDER BY GuestID, date_
OPTION (MAXRECURSION 0)

EDIT2

;WITH Guests AS (
SELECT  1 as GuestID,
        '2016-01-01' ArrivalDate,
        '2016-01-05' LeavingDate
UNION ALL
SELECT  2 ,
        '2016-06-17',
        '2016-06-20'
), cte AS (
SELECT GuestID, CAST(ArrivalDate as date) as date_
FROM Guests
UNION ALL
SELECT c.GuestID, CAST(DATEADD(day,1,date_) as date)
FROM cte c
INNER JOIN Guests g
    ON g.GuestID = c.GuestID
WHERE date_ < g.LeavingDate
)

SELECT *
FROM cte
ORDER BY GuestID, date_
OPTION (MAXRECURSION 0)

Output:

GuestID date_
1   2016-01-01
1   2016-01-02
1   2016-01-03
1   2016-01-04
1   2016-01-05
2   2016-06-17
2   2016-06-18
2   2016-06-19
2   2016-06-20
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建递归查询来获取两个日期之间的所有日期 的相关文章

  • 如何将可变数量的参数传递给 SQL Server 存储过程?

    我将 SQL Server 2005 用于我的小型 Web 应用程序 我想将参数传递给 SP 但有一个条件 可以不时更改的参数数量 想一想 这次我传递姓名和地址 下次我传递姓名 地址 该参数范围可以是 1 30 您使用默认参数声明该过程 并
  • 是否可以将普通表与临时表进行左外连接?

    我创建 SQL Server 查询并有一个包含记录的普通表 另一方面有一个包含记录的临时表 该表不为空 并且所有字段都没有任何冲突 加入 可以连接这两个不同类型的表吗 SELECT NormalTable Entityname FROM N
  • SQL Server 中带条件的多个计数函数

    我想合并 SQL Server 中的一些表 我想要获得的是如下图所示的东西 假设我有 tes A tes B tes C 和 tes jumlah 表 tes jumlah 是 tes A tes B 和 tes C 表的组合 请注意 ju
  • 如何知道 Solr Optimize 何时完成?

    我正在使用 Solr php client 通过 php 与 Solr 进行通信 这段代码触发solr优化命令 solr gt optimize 请问有没有什么方法可以确定优化完成了 这都是因为我的网站上有一个管理页面 我每天必须手动优化
  • 表中主键的最佳实践是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在设计表时 我养成了一种习惯 即有一列是唯一的 并且我将其作为主键 根据要求 可以通过三种方式实现 自动递增的标识整数列 唯一标识符 GUID
  • 从关键字后的文本中提取字符串

    我想从 SQL 字段中关键字后面的文本中提取内容 我有一个名为Description在表中 该字段的内容是 asdasf 关键字 狗 aeee 关键字 猫 ffffaa 关键词 狼 我想提取并保存 关键字 之后的文本 在本例中dog cat
  • 如何在 SQL Server 2005 中使用存储过程使用 CTE 从分层数据中获取所有子项及其自身

    我有很多类似的结构表 如下所示 CREATE TABLE dbo tbl Hierarchy ID int NOT NULL ParentID int NOT NULL Text nvarchar 100 NOT NULL other fi
  • SQL准备语句如何通过多个可能的菜单选择进行选择?

    所以我有 4 个菜单选择 产品 位置 课程类型和类别 所有这些都可以为空 使用 JSF 编程 但这应该与这个问题无关 因为它是一个 SQL 问题 菜单选择将向托管 bean 发送用户选择的变量 并使用准备好的语句使用用户选择的菜单中的信息
  • SQL Server 2008 中超前滞后函数的替代

    我想将当前行与下一行中的值进行比较 SQL 有LEAD and LAG函数来获取下一个和上一个值 但我无法使用它们 因为我使用的是 SQL Server 2008 那么我该如何得到这个呢 我有带输出的表 Id ActId StatusId
  • 如何在 Hibernate 中使用 SELECT 进行 INSERT

    我需要在休眠中实现以下请求 insert into my table max column values select max id from special table where 如何在休眠中使用注释来做到这一点 Special tab
  • 选择具有按两列分组的最大值的行

    我见过很多关于此类问题的解决方案 尤其是这个SQL 仅选择列上具有最大值的行 https stackoverflow com questions 7745609 sql select only rows with max value on
  • 具有重复值的 Sqlite 列

    就说专栏吧aSQLite 数据库的非常重复 始终有相同的 4 个值 其他值可能稍后出现 但不同值的数量将少于 1000 个 VALUES hello world it s a shame to store this str many tim
  • Redis 是否使用用户名进行身份验证?

    我已经在我的环境中设置了Redis 并且只看到了通过密码授权的部分 有没有办法也设置用户名 还是只能通过密码验证 Redis 6 上有 ACL 这些都有一个用户名 查看https redis io topics acl https redi
  • Yii 添加条件

    我尝试根据我的条件从表中获取行 我的代码 conditions array id gt array 148028 118508 criteria new CDbCriteria foreach conditions as key gt va
  • “JSON”附近的语法不正确 - SQL Server 2016

    所以我最近安装了SQL Server 2016 CTP3主要是为了JSON输出功能 我正在尝试在我的 SQL 查询中使用它 就像 MSDN 上下面的链接中显示的那样 关键字 JSON 不会变成蓝色并给出错误 JSON 附近的语法不正确 可能
  • SELECT * FROM (VALUES (x,y)) AS TableLiteral(Col1, Col2) 的名称

    以下是有效的 SQL 语法 SELECT FROM VALUES p q x y AS TableLiteral Col1 Col2 并返回表 Col1 Col2 1 p q 2 x y 此语法可以进一步用于 CTE 等 这个有名字吗 我通
  • Oracle中“NUMBER”和“NUMBER(*,0)”相同吗?

    在甲骨文中文档 http docs oracle com cd B28359 01 server 111 b28318 datatype htm i22289据说 数字 精度 小数位数 如果未指定精度 则该列将存储给定的值 如果 未指定比例
  • sql自连接表删除重复行

    我有下表 USERID LANGUAGEID 1 2 1 7 1 8 2 10 2 3 现在我想为每个用户创建所有可能的语言对 这意味着我希望结果集是 对于用户 1 2 7 7 8 2 8 对于用户 2 10 3 为此 我做了以下查询 SE
  • 如何在行的列中插入当前日期

    如何将当前日期插入 MS SqlServer Mgm Studio 中 编辑数据 视图中的行列中 我想得到等价的值GetDate 函数调用 这是我希望能澄清问题的图片 您无法键入函数 因此请键入日期或以下解决方案之一 创建默认值GetDat
  • 为什么我要费心使用全文搜索?

    我是全文搜索新手 我使用了以下查询 Select From Students Where FullName LIKE abc 学生表包含数百万条记录 所有记录都是随机的 如下所示 QZAQHIEK VABCNLRM KFFZJYUU 仅用了

随机推荐

  • Cygwin 不支持 glibc

    Cygwin 常见问题解答包含以下 glibc 在哪里 的信息 Cygwin 不提供 glibc 它使用 newlib 来代替 它提供了很多 但不是全部 相同的功能 将 glibc 移植到 Cygwin 会很困难 我很惊讶并检查了发布包 因
  • RenderTranform 不进行渲染变换

    所以我有一个画布和一个椭圆 并调用一个方法来像这样移动椭圆 public void moveElipse1ToCoordinate Point point Action action gt TranslateTransform moveTo
  • 将 CSS 中的第一个 Div 移动到第二个 Div 下方

    我的 html 代码如下所示 A 包装div 百分比宽度 向左浮动 包含 一个包含文本和链接的 div 一个包含图像的 Div 问题 我想要保持上面的编码顺序 但为了用户体验 我想使用 CSS 反转 div 顺序以获得如下内容 注意 包装器
  • 100%安全的照片上传脚本

    问题很简单 如何用php制作100 安全的照片上传脚本 是否有任何教程可以显示所有可能的安全差距 不要让我看这个问题 因为他们只谈论尺寸 但我想确定的是 没有人可以上传 shell 和其他东西 因为这是一个大网站 需要100 安全的照片上传
  • Google 登录 JavaScript 客户端无法在 PWA 应用上运行

    从昨天开始 当我使用gapi auth2在Android上安装的PWA应用程序上进行Google登录时 该应用程序打开浏览器窗口来选择用户 但它仍然是空白的 Android 上 Chrome 浏览器上的同一页面照常打开用户选择 代码是相同的
  • 使用数组和字典在 Swift 中实现多重映射

    我正在尝试在 Swift 中实现一个基本的多重映射 这是一个相关的 非功能性的 片段 class Multimap
  • ggplot2 中的图例,删除级别

    My data df lt data frame sp c LETTERS 1 8 tr c NS LS NS LS LS HS HS HS bv c 14 5 11 5 6 21 5 4 2 4 8 av c 0 0 14 21 48 4
  • 具有自定义声明的 Firebase 存储规则

    我无法让 Firebase Storage 使用自定义规则和自定义声明 在我的 Python 管理面板中 我执行以下操作来创建用户并分配声明 client id Standard Auth import firebase admin fro
  • 如何在保留对 self 的引用的同时调用变异方法?

    我在借阅检查员那里遇到了麻烦 for item in self xxx iter self modify self but not xxx item 上面的代码有效before我将一些代码重构为modify self but not xxx
  • MySQL:按字母顺序获取多个列中的唯一值

    如果我的表看起来像这样 id colA colB colC 1 red blue yellow 2 orange red red 3 orange blue cyan 我运行什么 SELECT 查询才能返回结果 蓝色 青色 橙色 红色 黄色
  • 在 Node 4.3 中使用 Buffer.from 时出现 TypeError Base64 不是函数

    我正在使用标准 Amazon 系统映像 linux x64 在 Node 4 3 上本地调试 lambda 函数 当我运行该程序时 在将 Base64 字符串解码为 utf 8 的函数中出现错误 错误说 Unhandled rejectio
  • 预检响应具有无效的 HTTP 状态代码:401 角度

    使用 Angular 和 Spring Boot 我们尝试向我们的服务添加身份验证 但由于某种原因 我们无法 打开 并从我们知道有效的 url 中获取数据 角度 this getMismatches function return http
  • Mockito - @Spy 与 @Mock [重复]

    这个问题在这里已经有答案了 我知道间谍调用对象上的真实方法 而模拟调用双对象上的方法 除非有代码味道 否则还应避免间谍 但是 间谍是如何工作的以及我应该何时实际使用它们 它们与模拟有何不同 从技术上讲 模拟 和 间谍 都是一种特殊的 测试替
  • XMLSerialize 和 EXCLUDE 基类

    我希望能够通过 XML 序列化子类 但从序列化中排除其基类 这是我的类 为 DataObjects NET 配置 Serializable HierarchyRoot public class MyClass Entity Field Ke
  • Spring Security 注销会话未失效

    我几乎尝试了在 StackOverflow 和其他地方可以找到的所有方法来使其工作 但仍然不起作用 我正在使用 Spring Framework 4 1 6 RELEASE Spring Security 4 0 0 RELEASE 我配置
  • 连接xsl中的两个字段

    我有一些 xml 字段 我需要将所有字段连接到一个字段中
  • 如何以编程方式告诉 Windows 任务栏打开(或关闭)给定的工具栏?

    我写了一个toolbar在任务栏上运行 不幸的是 安装后 用户必须手动启用它 有没有办法告诉资源管理器打开 或关闭 给定的工具栏 我希望安装程序 NSIS 在安装完成后打开工具栏 我意识到需要一个插件 我还想知道是否可以自动为所有用户启用工
  • 如何隐藏3D绘图中不可见的元素?

    我正在尝试绘制显示波纹的 3D 图像 function myFunc x y let zRipple Math pow 2 0 005 Math abs x Math abs y Math cos x x y y 2 pi 180 widt
  • 如何从多个数组创建对象数组

    给定以下数组 var ids 1 2 3 Hundreds of elements here var names john doe foo Hundreds of elements here var countries AU USA USA
  • 如何创建递归查询来获取两个日期之间的所有日期

    我想获取两个日期之间的所有日期arrival date and leaving date 我尝试了递归查询 但没有成功 with dates as SELECT GuestID ArrivalDate as reserveddate fro