【发布时间】:2021-04-11 06:53:09
【问题描述】:
我需要一个设备跟进项目的帮助。
我有一个包含 3 列(设备名称、状态、状态更改日期(DATETIME 格式))的 SQL 表。
| EQUIPMENT | STATUS | CHANGEDATE |
|---|---|---|
| EQUIPMENT-1 | QUALIFICATION | 2020-06-30 09:37:42 |
| EQUIPMENT-1 | WAIT REPAIR | 2020-06-30 16:29:20 |
| EQUIPMENT-1 | UP | 2020-07-27 14:19:33 |
| EQUIPMENT-1 | ENGINEERING | 2020-09-18 15:25:01 |
| EQUIPMENT-1 | UP | 2020-09-20 17:31:53 |
这个想法是在2个固定日期之间确定每个状态下每个设备的经过时间。
例如,我想知道2020-07-01和2020-10-01之间所有状态下EQUIPMENT-1的经过时间表格结果是这样的
| STATUS | ELAPSED TIME (in days) |
|---|---|
| WAIT REPAIR | 26,60 |
| UP | 63,31 (10,27 + 53,05) |
| ENGINEERING | 2,09 |
今天我有一个 C# 代码来计算这些经过的时间,但它很慢...... 所以我想知道用 SQL 查询替换这个过程是否容易。
感谢您的帮助,
【问题讨论】:
-
您可以查看 DATEDIFF SQL 函数
-
您使用的是哪个 dbms? (在日期/时间方面,许多产品远不符合 ANSI SQL。)
-
对不起,我用的是 SQL Server (2012)
标签: sql sql-server sql-server-2012