【发布时间】:2018-05-24 09:49:21
【问题描述】:
我在 MySQL 中有一个表格,记录了特定进程的开始时间和结束时间。 它看起来像这样:
process_id process_start process_end data_1 data_2
1 2017-12-05 15:21:55 2017-12-05 15:39:48 SD12891 8952020517397180000
2 2017-12-05 15:40:19 2017-12-05 21:56:10 40001067 8952020017390610000
3 2017-12-05 21:58:10 2017-12-05 22:04:46 SD12667 89014103279450400000
4 2017-12-05 22:05:50 2017-12-05 22:08:11 40001067 89014103279450400000
我想创建此数据库的视图,其中包含一个名为“process_time”的新列,它将记录进程的小时数 [LEFT(process_start, 13)],但它会为进程的每个小时创建一行已启动(意味着它将在 process_start 和 process_end 之间每小时创建一个新行)并且对于每个新行,其他列中的所有值都应保持不变。 所以最后一张图片中的数据库看起来像这样:
process_id process_time data_1 data_2
1 2017-12-05 15 SD12891 8952020517397180000
2 2017-12-05 15 40001067 8952020017390610000
2 2017-12-05 16 40001067 8952020017390610000
2 2017-12-05 17 40001067 8952020017390610000
2 2017-12-05 18 40001067 8952020017390610000
2 2017-12-05 19 40001067 8952020017390610000
2 2017-12-05 20 40001067 8952020017390610000
2 2017-12-05 21 40001067 8952020017390610000
3 2017-12-05 21 SD12667 89014103279450400000
3 2017-12-05 22 SD12667 89014103279450400000
4 2017-12-05 22 40001067 89014103279450400000
如何做这样的事情?
【问题讨论】:
-
您使用的是哪个 DBMS?相应地标记。
-
你说得对,忘了说。这是 MySQL
-
请将数据发布为文本而不是图像,手动复制是皇室的痛苦......
-
考虑处理应用代码中数据显示的问题。
标签: mysql sql calculated-columns sql-view