使用 2 个日期参数之间(含)之间的日期填充临时表的最简单方法

2023-12-08

使用包含两个日期参数和两个日期参数之间的日期填充临时表的最简单方法是什么。我只需要该月日期的第一天。

例如,如果 @StartDate = '2011-01-01' 和 @EndDate = '2011-08-01'

然后我希望将其返回到表中

2011-01-01
2011-02-01
2011-03-01
2011-04-01
2011-05-01
2011-06-01
2011-07-01
2011-08-01

即使 @StartDate 不是本月的第一天,这也有效。我假设如果不是月初,您希望从下个月的第一天开始。否则删除+1:

;WITH cte AS (
SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate 
            ELSE DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0) END AS myDate
UNION ALL
SELECT DATEADD(Month,1,myDate)
FROM cte
WHERE DATEADD(Month,1,myDate) <=  @EndDate
)
SELECT myDate
FROM cte
OPTION (MAXRECURSION 0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 2 个日期参数之间(含)之间的日期填充临时表的最简单方法 的相关文章

  • 作为 UDF 结果的列上的 Where 子句

    我有一个用户定义的函数 例如myUDF a b 返回一个整数 我试图确保该函数仅被调用一次 并且其结果可以用作WHERE clause SELECT col1 col2 col3 myUDF col1 col2 AS X From myTa
  • FireDac 添加下划线 1 以区分具有相同名称的 2 个列名

    我有一个连接 2 个表的选择 因此这些表中存在具有相似名称的列 因此现在在检索结果时 FireDac 将下划线 1 添加到第二个列名称以区分这两个表 Select from Table1 inner join Table2 on Table
  • SQL Server 中全文搜索的奇怪行为

    我的 MyTable 带有列消息 NVARCHAR MAX ID 为 1 的记录包含消息 0123456789333444 Test 当我运行以下查询时 DECLARE Keyword NVARCHAR 100 SET Keyword 01
  • 查询获取每条记录的最小日期[重复]

    这个问题在这里已经有答案了 我想获取表中每条记录的最小日期 该表具有多个带有一个主键的日期条目 看看我的桌子 CaseNo Entry date ABC 001 2 12 13 ABC 002 2 09 13 ABC 001 1 01 13
  • 不能简单地使用 PostgreSQL 表名(“关系不存在”)

    我正在尝试运行以下 PHP 脚本来执行简单的数据库查询 db host localhost db name showfinder username user password password dbconn pg connect host
  • 单个查询删除并显示重复记录

    采访中提出的问题之一是 一张表有100条记录 其中 50 个 是重复的 是否可以用单个 查询删除重复记录 从表中以及选择和 显示剩余 50 条记录 这可以在单个 SQL 查询中实现吗 Thanks SNA 对于 SQL Server 你会使
  • MySQL,连接两列

    MySQL 表中有两列 SUBJECT and YEAR 我想生成一个字母数字唯一编号 其中包含主题和年份的串联数据 我怎样才能做到这一点 是否可以使用像这样的简单运算符 您可以使用CONCAT http dev mysql com doc
  • 如何将表移动到 T-SQL 中的架构中

    我想使用 T SQL 将表移动到特定架构中 我正在使用 SQL Server 2008 ALTER SCHEMA TargetSchema TRANSFER SourceSchema TableName 如果你想搬家all表到一个新的模式
  • 如何调试参数化 SQL 查询

    我使用 C 连接到数据库 然后使用 Ad hoc SQL 来获取数据 这个简单的 SQL 查询非常方便调试 因为我可以记录 SQL 查询字符串 如果我使用参数化 SQL 查询命令 有没有办法记录 sql 查询字符串以进行调试 我想就是这样的
  • SQL Server 2008 中的全文搜索一步一步

    如何开始使用SQL Server 2008 中的全文搜索 阅读这些链接 SQL SERVER 2008 创建全文目录和全文搜索 http blog sqlauthority com 2008 09 05 sql server creatin
  • 重新启动后无法远程或本地连接到 SQL Server

    上周末进行一些网络维护后 我们的开发服务器出现了一些问题 导致我们重新启动它 重新启动期间安装了一些更新 这可能是也可能不是一个因素 从那时起 我们就无法连接到 SQL Server 2005 即使是通过 Management Studio
  • 获取从开始日期到结束日期的活跃周数

    我的订阅数据如下所示 数据显示用户何时购买订阅 它有user id subscription id start date and end date 我已经得出wk start and wk end从中 user subscription i
  • 在 SQL 中如何获得整数的最大值?

    我试图从 MySQL 数据库中找出整数 有符号或无符号 的最大值 有没有办法从数据库本身提取这些信息 是否有我可以使用的内置常量或函数 标准 SQL 或 MySQL 特定的 At http dev mysql com doc refman
  • 内连接 3 个表

    我正在使用 PHP 和 PDO 我需要重新收集连接 3 个表的信息 photos albums 相册照片 该表具有以下结构 photos photo id int path varchar nick varchar date timesta
  • where 子句中的双 %% ?

    我有一个 where 子句 如下例所示 WHERE subject LIKE chef AND dep LIKE psy 使用 1 或 2 符号有什么区别 我知道其中一个的含义 通配符 但不知道第二个添加的功能是什么 该查询可能是一个拼写错
  • 在 Oracle 中使用数据透视表的建议

    我需要一份报告 我应该使用数据透视表 报告将按类别分组 使用 case when 语句不好 因为有很多类别 您可以将 Northwind 数据库视为示例 所有类别将显示为列和报告将显示客户在类别中的偏好 我不知道另一个解决方案 并在互联网上
  • PostgreSQL WHERE 计数条件

    我在 PostgreSQL 中有以下查询 SELECT COUNT a log id AS overall count FROM Log as a License as b WHERE a license id 7 AND a licens
  • 如何在 Postgresql 中将 GIST 或 GIN 索引与 hstore 列一起使用?

    我正在使用 postgresql 9 3 的 hstore 我正在尝试对 hstore 列使用索引就像文档所述 http www postgresql org docs 9 3 static hstore html 我的问题是索引似乎没有被
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐