如何计算日期范围之间每天的分钟数

时间:2019-01-08 21:26:10

标签: ssms date-range

首先,我很抱歉,我什至不知道从哪里开始,也找不到针对这个特定问题的任何东西。

我有一个带有日期时间(开始和结束)的表,我需要找到一种在这两天之间获取分钟/小时的方法。它可以是工作日时间的总和,也可以是每天的某种时间,然后按ID号分组。我曾经考虑过为天数分配一个值,但是时间是随机的,并且不会在午夜开始/结束,所以我对如何处理这个问题感到困惑。

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

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

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

修改

忘记包括我正在使用SQL Server(SSMS)

编辑以供进一步说明

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

| ID号|开始时间|结束时间

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

这是我要实现的目标(每个日期范围/ ID号的分隔)

ID号|开始时间|结束时间|分钟|

1 | 12/14/2018 10:53 | 12/14/2018 23:59 | 786 |

1 | 12/15/2018 0:00 | 12/15/2018 23:59 | 1439 |

1 | 12/16/2018 0:00 | 12/16/2018 23:59 | 1439 |

1 | 12/17/2018 0:00 | 12/17/2018 12:00 | 960 |

1 个答案:

答案 0 :(得分:0)

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

DATEDIFF:

SELECT DATEDIFF(MINUTE, StartDateColumn, EndDateColumn)

具有分组和汇总功能的DATEDIFF:

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