我有一个显示开始和停止时间的时间表条目列表。这是位于 MySQL 数据库中的。我需要根据此数据创建条形图,底部显示一天中的 24 小时以及一天中每个小时的工作工时量。
例如,如果 Alice 的工作时间为 15:30 到 19:30,Bob 的工作时间为 12:15 到 17:00,则图表将如下所示:
我现在有一个 WTFey 解决方案,其中涉及将电子表格发送到 DY 列或类似的内容。所需的分辨率是 15 分钟间隔。
我假设这最好在数据库中完成,然后导出以创建图表。如果我遗漏了任何细节,请告诉我。谢谢。
最佳答案
创建一个表,其中包含从午夜到午夜的时间,其中包含一天中的每一分钟。在数据仓库领域,我们将其称为时间维度。这是一个例子:
TIME_DIM
-id
-time_of_day
-interval_15
-interval_30
表中数据的示例如下
id time_of_day interval_15 interval_30
1 00:00 00:00 00:00
...
30 00:23 00:15 00:00
...
100 05:44 05:30 05:30
然后您所要做的就是将表连接到时间维度,然后按间隔_15 进行分组。例如:
SELECT b.interval_15, count(*)
FROM my_data_table a
INNER JOIN time_dim b ON a.time_field = b.time
WHERE a.date_field = now()
GROUP BY b.interval_15
关于sql - 从时间间隔数据绘制每小时条形图的优雅方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/79789/