【发布时间】:2021-08-03 19:57:51
【问题描述】:
我有一个 SQL 表,其中包含机器开始和结束时间 (DateTime) 的条目以及机器运行的持续时间。给定开始日期时间和结束日期时间,我想计算机器运行的持续时间。 DB 是 SQL,代码是 C#。
注意:机器在给定的开始和结束日期时间之间可能有一段时间没有运行,我想在总计算期间忽略该持续时间。
考虑例子
| Start Time Machine | End Time Machine | Duration(Mins) |
|---|---|---|
| 1:00:01 | 2:00:00 | - 60 |
| 2:00:01 | 2:30:00 | - 30 |
| 3:00:01 | 4:00:00 | - 60 |
如果选择的开始时间是 1:40:00,结束时间是 3:20:00(注意机器在 2:30:00 到 3:00 之间没有运行)
如何在 SQL 中获取持续时间?
对于上面的例子,答案应该是 70 分钟。
1:40:00 to 2:30:00 - 50Mins
3:00:00 to 3:20:00 - 20Mins
Total = 70mins between 1:40:00 and 3:20:00
【问题讨论】:
-
我删除了不一致的数据库标签。请仅使用您真正使用的数据库进行标记。
-
最好在 c# 中做。 SQL 查询变得复杂。
-
@jdweng 这是一个简单的 sql 查询,看我的回答;)
标签: c# sql postgresql datetime