【发布时间】:2010-07-08 16:22:38
【问题描述】:
+--------+--------------+
|进程 |结束时间 |
+--------+--------------+
|一个 | 2010/01/01 12:10:00.000 |
|乙| 2010/01/01 12:08:00.000 |
| C | 2010/01/01 12:05:00.000 |
| D | 2010/01/01 12:02:00.000 |
| ...| ... |
所以基本上我从数据库中提取的数据将类似于上面的内容,第一列是进程的名称,第二列是它完成运行的时间。我想添加第三列,它显示进程的运行时间。
基本上,我希望拉取的数据看起来像这样:
+--------+--------------+--------------+ |进程 |结束时间 |运行时间 | +--------+--------------+--------------+ |一个 | 2010/01/01 12:10:00.000 | | (进程 a 未完成运行) |乙| 2010/01/01 12:08:00.000 | 00:03:00.000 | | C | 2010/01/01 12:05:00.000 | 00:03:00.000 | | D | 2010/01/01 12:02:00.000 | 00:02:00.000 | (假设开始时间为 12:00) | ...| ... | ... |而且我知道添加startTime 列并从中确定runningTime 会更容易,但我无权更改它,并且无论如何旧数据都没有 startTime 可以使用.
第一个进程的开始时间是任意的,但你明白我在说什么。我们根据 proc D 结束的时间和 proc C 结束的时间(从第二个减去第一个)来知道 proc C 的运行时间。
如何根据“Row X Col B”和“Row X-1 Col B”之间的差异计算第三行?
【问题讨论】:
-
这看起来像 MySQL 结果 - 你使用的是什么 DBMS?
-
Microsoft SQL Server,我想我应该说清楚。
-
您已将其标记为 SQL,而不是 MySQL - 只是您的示例输出在我看来类似于 MySQL。我不知道是否可以复制我在 MS SQL 中使用的 MySQL 方法,因为它不允许在也返回数据的 SELECT 中分配变量。
标签: sql sql-server date calculated-columns