如何使用SQL Server计算periodId

edqdpe6u  于 2022-11-21  发布在  SQL Server
关注(0)|答案(1)|浏览(189)

我有一个table1,它存储多个日期的数据,比如说(在2022-01-012022-01-10之间),我有另一个table2,它有时间间隔,每5分钟有一次table1中可用的日期信息(即上表中每天有288条记录)。
现在,我如何为table 2编写查询,以计算table 1中每个特定日期的时间间隔。假设我需要

2022-01-01 12:00:00 to 2022-01-01 02:00:00
2022-01-02 00:05:00 to 2022-01-02 23:00:00
2022-01-04 00:05:00 to 2022-01-10 15:00:00

我尝试使用DATEDIFF函数,但没有给出结果。假设我使用日期2022-01-02 00:00:00,则我的时间间隔应该回到1,对于2022-01-02 00:05:00,它应该是2
下面是数据示例:
表1:ID开始日期结束日期2003-09- 17.D0001 2003年9月17日14:10:00 2003年9月18日14:20:00
表2:日期时间间隔金额2003-09-17 1 150 2003-09-17 2 100 2003-09-17 3 200
二○ ○三年九月十八日
二○ ○三年九月十八日
表2中的时间间隔是该特定日期的每5分钟。现在我需要从表2中获取与表1中的特定日期和时间匹配的数据

piok6c0g

piok6c0g1#

我 在 这里 猜测 , 如果 您 希望 从 table2 返回 具有 特定 时间 的 数据 , 并且 该 表 的 格式 如下 所 示
表格 1
| 表 1id|日期|
| - -| - -|
| 一 个|2022 年 1 月 1 日|
| 2 个|2022 年 1 月 10 日|
表格 2
| 表 2id|表 1id|时间|
| - -| - -| - -|
| 一 个|一 个|中午 12 点 00 分|
| 2 个|一 个|12 时 05 分|
| 三 个|一 个|12 点 10 分|
您 查询 应该

select * 
from table2 
where Time between '12:00:00' and '02:00:00'
and tbl1id 
in
(
select tbl1id
from table1
where Date = '2022-01-01'
)

中 的 每 一 个
然而 , 它 你 正在 寻找 只是 寻找 计算 时间 间隔 分钟

DECLARE @startdate DATETIME2 = '2022-01-02 00:00:00';  
DECLARE @enddate   DATETIME2 = '2022-01-02 00:05:00'; 
SELECT DATEDIFF(Minute, @startdate, @enddate);

格式
这样 就 行 了 。

相关问题