T/SQL 中的日期范围

2023-12-01

对于我正在工作的当前项目,我需要返回基于日期范围的汇总报告。

我有 3 种类型的报告,年度、月度和日报。

为了帮助返回此报告,我需要一个函数来返回一个大范围内的所有日期时间子范围。

因此,例如,如果我对于“2006-01-01 11:10:00”和“2006-01-05 08:00:00”之间的所有每日范围,我会期望以下结果。

select * 
from dbo.fnGetDateRanges('d', '2006-01-01 11:10:00', '2006-01-05 08:00:00')  

2006-01-01 11:10:00.000,    2006-01-02 00:00:00.000
2006-01-02 00:00:00.000,    2006-01-03 00:00:00.000
2006-01-03 00:00:00.000,    2006-01-04 00:00:00.000
2006-01-04 00:00:00.000,    2006-01-05 00:00:00.000
2006-01-05 00:00:00.000,    2006-01-05 08:00:00.000

对于“2006-01-01 11:10:00”到“2009-05-05 08:00:00”的年度范围,我预计。

select * 
from dbo.fnGetDateRanges('y', '2006-01-01 11:10:00', '2009-05-05 08:00:00') 

2006-01-01 11:10:00.000,    2007-01-01 00:00:00.000
2007-01-01 00:00:00.000,    2008-01-01 00:00:00.000
2008-01-01 00:00:00.000,    2009-01-01 00:00:00.000
2009-01-01 00:00:00.000,    2009-05-05 08:00:00.000

我该如何实现这个功能呢?


静态数字表很有用,单列,例如 8000 行从 0 到 7999

(未勾选)

DECLARE @Start smalldatetime, @End smalldatetime, @Diff int

SELECT @Start = '2006-01-01 11:10:00', @End = '2009-05-05 08:00:00', @diff = DATEDIFF(year,@start,@end)

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

T/SQL 中的日期范围 的相关文章

  • 使用变量获取 SQL xml 属性值

    我有一个 SQL 函数 它接受一个名为attribute 这是我想要从中获取值的 xml 属性 xmlPath是完整的 XML 字符串 我的 xml 看起来像这样
  • 检查 SQL MAX() 函数返回 null

    我的问题是 如果我的表为空或者我使用 max 函数的列没有我指定的值 那么为什么 sqlDataReader hasRows TRUE 它给出了空记录 我该如何解决这个问题 提前致谢 像 MAX 这样的聚合函数将始终为每组返回一行 就您而言
  • 如何在行的列中插入当前日期

    如何将当前日期插入 MS SqlServer Mgm Studio 中 编辑数据 视图中的行列中 我想得到等价的值GetDate 函数调用 这是我希望能澄清问题的图片 您无法键入函数 因此请键入日期或以下解决方案之一 创建默认值GetDat
  • SQL Server 2008中的分割函数

    I have Table1像这样的列 ID Name 1 MSSQL 2 MySQl 3 Oracle In Table2 我有一个像这样的专栏 Databasename 1 3 2 1 2 我的输出应该是 Databasename MSS
  • 如何使这条 SQL 行更加高效? (分区依据时的情况)

    我有一个看起来像这样的 SQL 行 SUM Unit Retail OVER PARTITION BY CASE WHEN LocalDetailLevel master THEN Master Item WHEN LocalDetailL
  • 使用 MSSQL 将 SQL Server 与 Nodejs 连接时出现 SQL Server 错误“[ConnectionError: Login failed for user '****'.]”

    我遇到以下错误 ConnectionError Login failed for user name ConnectionError message Login failed for user code ELOGIN 下面是我使用 mssq
  • SQL Server 将 varbinary 转换为字符串

    我想在 T SQL 中进行转换varbinary类型转字符串类型 这是一个例子 首先我得到了这个varbinary 0x21232F297A57A5A743894A0E4A801FC3 然后我想将其转换为 21232f297a57a5a74
  • SQL Server 作业/时间表 - 美国与英国夏令时调整

    SQL Server 作业 时间表 美国与英国夏令时调整 我们有一台位于英国的服务器 需要在 16 30 美国中部时间 这可能看起来很奇怪 但这是因为某些数据的可用性 运行 SQL 代理作业 通常这不会成为问题 因为英国和美国之间的时差为
  • SQL Server 的 printf

    Sql Server中有类似printf的函数吗 我想要与 RAISERROR 函数相同的功能 但我不想抛出错误或打印消息 而是想将其写在 varchar 中 因为我的 ERP 不允许我处理错误消息 这是 SQL Server 2000 R
  • 在存储过程中使用动态sql中的临时表

    我正在 SQL Server 2012 中编写存储过程 我有一个像这样定义的临时表 DECLARE CURRENT RET WEEK PTIMEIDS TABLE PTIMEID INT 我也在使用EXECUTE编写动态 SQL 查询 有什
  • 逗号分隔列表作为单个字符串,T-SQL [重复]

    这个问题在这里已经有答案了 我的 T SQL 查询生成以下结果集 ID Date 756 2011 08 29 756 2011 08 31 756 2011 09 01 756 2011 09 02 我怎样才能像这样转换 ID Date
  • “等待操作超时”...但仅来自 .NET 客户端?

    我有一个查询 当从我的应用程序执行时会抛出 SqlException 0x80131904 超时已过期 操作完成之前超时时间已过 或者服务器没有响应 在 Visual Studio 中单步执行代码时 我遇到了同样的错误 但是 当使用相同的凭
  • 获取记录子集以及总记录计数

    我正在努力从 SQL Server 2008 返回记录集以进行一些分页 我一次只返回 15 条记录 但我需要匹配的总数以及记录的子集 我使用了两个不同的查询 结果混合 具体取决于我需要在较大组中的哪个位置提取子集 这是一个示例 SET NO
  • 使用sql server中的更新附加二进制文件

    我在 sql server 2008 的特定字段中有二进制数据 但我想将一些二进制数据附加到同一字段 你能帮我吗 如果它是一个varbinary n varbinary max 你只需附加 declare foo table id int
  • 从视图中的动态表名称中选择

    我的客户每年都会创建一个新表 其名称中包含年份 我必须在 SQL Server 数据库的新视图中使用该表 我已经通过一个查询解决了这个问题 DECLARE SQLString nvarchar 500 SET SQLString SELEC
  • SQL Server 中的“with (nolock)”是什么?

    有人可以解释使用的含义with nolock 关于查询 什么时候应该 不应该使用它 例如 如果您有一个银行应用程序 交易率很高并且某些表中有大量数据 那么在什么类型的查询中 nolock 是可以的 是否存在您应该始终使用它 从不使用它的情况
  • SQL Server 表不使用默认值

    我正在使用 SSIS 包填充表 这个想法是 每当包上传到表时 它都会使用时间戳记该值getdate 当我打开它时 我的 DDL 看起来像这样 CREATE TABLE REPORTING post ssis table 1 validati
  • 无法将参数值从 TimeSpan 转换为 DateTime

    我正在使用 SQL Server 2008 首先我给了SqlDbType Time for System TimeSpan插入和更新的参数类型 我工作成功 现在我改为DbType Time代替SqlDbType Time 这给了我错误消息
  • 如何解决将表达式转换为数据类型 int 时出现算术溢出错误?

    我有以下查询 CTE to remove outliers e g remove the fastest and slowest results WITH MinMaxCTE AS SELECT ServerName CONVERT VAR
  • 选择出现多次的行

    TableOne PersonId PersonScore 1 10 1 20 2 99 2 40 3 45 我只需要获取 PersonId 多次出现的那些行 例如以下是我想要实现的结果集 PersonId PersonScore 1 10

随机推荐

  • MPMoviePlayerController 处于纵向模式?

    我想知道是否可以在纵向模式下使用 MoviePlayer 感谢您的帮助 T 如果你使用 moviePlayer setOrientation UIDeviceOrientationPortrait animated NO API 您的应用程
  • 如何暂停 Windows 关闭

    我需要在启动和关闭时将声卡静音 取消静音 我找到了一些代码来完成这项工作 但 Windows 通常会突然关闭 并且声音永远不会静音 有人可以告诉我如何暂停关闭足够长的时间以使我的应用程序静音吗 我可以使用一个简单的 TTimer 来暂停应用
  • 在 SQL Server Management Studio 中生成脚本

    如果我有一个包含 SQL Server 数据库中数据的表 我如何生成一个脚本来创建该表并添加数据 如果我右键单击表格然后选择Script Table As gt Create to gt File 它生成一个脚本来仅创建没有数据的表 我需要
  • php pdo多数组插入

    我已经玩了几个小时并试图解决这个问题 但看起来很难解决 我能够进行单个数组插入 person array name gt Wendy age gt 32 但如果我想要多个这样的 person array array name gt Dan
  • GCE + K8S - 访问推荐IP地址

    通过 Google Container Engine 上的标准 Kubernetes 部署 要包含使用 Kubernetes 负载均衡器设置配置的服务来创建网络负载均衡器 是否可以在应用程序中访问用户 或引用 的 IP 地址 对于 PHP
  • 将 utf8 字符串拆分为字符数组

    我正在尝试拆分utf8将字符串编码为字符数组 我现在使用的功能曾经可以工作 但由于某种原因它不再工作了 可能是什么原因 更好的是 我该如何解决它 这是我的字符串 Zelf heb ik maar n vraag wie ben jij 这是
  • 不允许用户保存 TFS 凭据

    这是这个问题的后续问题 加载 Visual Studio 时 如何更改用于连接到 Visual Studio Online TFSPreview 的默认凭据 我遇到的问题是 如果用户选中了 记住我的凭据 框 我需要按照我链接的问题中给出的答
  • 向 UIView 添加宽度边框,显示外面的小背景

    我正在尝试添加圆形边框UIView以绿色背景 我创建了简单的UIView具有 borderWidth cornerRadius 和 borderColor 属性的子类 我从故事板中设置它 IBDesignable class Rounded
  • 从现有集合中初始化对象初始值设定项中的仅获取集合

    我有一个具有仅获取集合属性的类 我想使用现有集合中的值来初始化集合 我知道可以初始化集合使用集合初始值设定项 我还可以创建该对象然后使用AddRange在集合上添加现有集合的项目 然而 这将创建具有空列表的对象 然后添加现有项目 有没有办法
  • 在 Shell 中重命名逆序编号的文件

    我正在寻找一种实用的方法来在 shell 中进行此练习 我有这些文件 1 txt 2 txt 3 txt 4 txt 5 txt 50 txt 我想这样重命名 50 txt 1 txt 49 txt 2 txt 48 txt 3 txt 以
  • MySQL计算N行的移动平均值

    我正在尝试计算移动平均值ofN 行 for单个查询中的所有行 在示例中 我尝试计算 50 行的移动平均值 SELECT h1 date h1 security id SELECT AVG last50 close FROM SELECT h
  • jsdom.env 不是将 svg 导出到图像的函数

    我正在尝试根据以下教程将 d3 svg 图像转换为图像 https github com hugolpz svgcreator node js 我安装以下语句 sudo npm install g jsdom d3js npm instal
  • 如何在我的 Netbeans 项目中包含外部 jar

    当我运行 清理并构建 时 jar正在创建的文件仅在以下情况下运行lib文件夹与 jar file 因此 如果我将 jar 文件移动到桌面并保留lib文件夹中的dist文件夹中 jar 文件会给我一个例外 我该如何处理这个问题 我通过仅创建一
  • docker run 命令出现“Exec 格式错误”

    我有这个基于 Golang 的 Dockerfile FROM golang latest RUN mkdir p app WORKDIR app COPY bin huru CMD huru 我检查了一下 huru 二进制文件位于工作目录
  • X11 - 图形渲染改进

    我目前正在将无符号整数数组渲染到窗口上的二维图像 但是 对于我想要用它完成的任务来说 它太慢了 这是我的代码 int x 0 int y 0 GC gc XGCValues gcv gc XCreateGC display drawable
  • 我们怎样才能让 Watir-Webdriver 处理 IE 无效证书屏幕?

    我们在测试时可能都见过这个屏幕 您所需要的只是一个带有自签名证书的 HTTPS 站点 然后您会看到 此网站的安全证书有问题 屏幕 这需要您单击链接才能继续 对于 Watir 这不是问题 我可以像处理任何其他网页一样自动化屏幕 根据其文本或
  • 将数据框列和外部列表传递给 withColumn 下的 udf

    我有一个具有以下结构的 Spark 数据框 bodyText token 具有标记 已处理 单词集 我有一个定义关键字的嵌套列表 root id string nullable true body string nullable true
  • Discord.py - 服务器静音用户

    我正在使用discord py 但不使用命令 我无意改变 为了解释机器人的目标 我将使用一个小方案 服务器成员发送如下消息 Start user 0001 ping 到的用户的服务器静音 任何人都听不到他在任何语音聊天中的声音 10秒过去
  • PHP日期计算

    PHP 中计算指定格式的两个日期之间的天数差异的最佳方式是什么 与日期格式无关的方式 我尝试了以下功能 function get date offset start date end date start time strtotime st
  • T/SQL 中的日期范围

    对于我正在工作的当前项目 我需要返回基于日期范围的汇总报告 我有 3 种类型的报告 年度 月度和日报 为了帮助返回此报告 我需要一个函数来返回一个大范围内的所有日期时间子范围 因此 例如 如果我对于 2006 01 01 11 10 00