【问题标题】:How can I calculate the number of minutes per day between a daterange如何计算日期范围之间每天的分钟数
【发布时间】:2019-01-08 21:26:10
【问题描述】:

首先我很抱歉,我什至不知道从哪里开始,也无法找到任何特定于这个特定问题的信息。

我有一张带有日期时间(开始和结束)的表格,我需要找到一种方法来获取这些天之间的分钟/小时。它可以是工作日时间的总和,也可以是每天的某种枢轴,并按 ID 号分组。我曾想过为天数分配一个值,但是时间是随机的,并且不会在午夜开始/结束,所以我不知道如何处理这个问题。

如果有帮助,这里有一些日期/时间格式示例。

开始日期 2018-12-14 10:53:01
结束日期 2018-12-27 11:50:00

任何帮助或提示将不胜感激!

编辑

忘了包括我在 SQL Server (SSMS) 中工作

编辑以补充说明

这是一个带有 ID 号的示例日期范围,我想保持简单。

|身份证号|开始时间|结束时间

|1 |12/14/2018 10:53|12/17/2018 12:00

这就是我想要实现的(每个日期范围/ID#的分离)

身份证号|开始时间|结束时间|分钟|

1 | 2018 年 12 月 14 日 10:53|2018 年 12 月 14 日 23:59|786 |

1 | 2018 年 12 月 15 日 0:00 |2018 年 12 月 15 日 23:59|1439|

1 | 2018 年 12 月 16 日 0:00 |2018 年 12 月 16 日 23:59|1439|

1 | 2018 年 12 月 17 日 0:00 |2018 年 12 月 17 日 12:00|960 |

【问题讨论】:

  • 您使用什么语言?这可能会影响解决此问题的方法
  • 正如@DacreDenny 所指出的,包括您正在使用的技术、代码(如果适用)和尝试的解决方案(如果适用)。
  • 抱歉忘记包含,使用 SQL Server (SSMS)
  • @JosephClapham 考虑通过添加这些详细信息来更新您的问题。还要在问题中添加适当的标签:)

标签: ssms date-range


【解决方案1】:

DATEDIFF 函数的MINUTE 参数可用于确定两个日期时间列之间的分钟差。如下所示,第二个参数是开始日期,第三个参数是结束日期,结果是从开始日期到结束日期在指定间隔(天、分钟等)内的时间量。如果您需要查找这两列之间的小时数,可以使用 HOUR 参数。也可以进行分组,如第二个示例所示。

日期:

SELECT DATEDIFF(MINUTE, StartDateColumn, EndDateColumn)

DATEDIFF 与分组和聚合:

SELECT ColumnA, SUM(DATEDIFF(MINUTE, StartDateColumn, EndDateColumn)) as DifferenceInMinutes
FROM YourSchema.YourTable
GROUP BY ColumnA

【讨论】:

  • 我会稍微澄清一下我最初的问题,因为它涉及更多一点,并包含一个结果集的样本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 2013-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多