我想使用此JavaScript库https://kamisama.github.io/cal-heatmap/生成类似GitHub所使用的事件样式的热图。
我计划使用它来表示任务记录上每天在Project Management应用程序上发生多少操作。
例如,每个正方形将是1天。当您将鼠标悬停在一个正方形上时,它的颜色和项目数将是该任务记录在当日执行的活动总数。
任务活动包括:
任务标题,描述,截止日期,里程碑,优先级,分配的用户或正在更新的标签。
发表在任务记录上的评论或评论回复。
因此,在2015年6月17日,如果对任务发表了5条评论,并且分配的用户字段已更新。它将在生成的热图上显示当日的6个项目。
我需要帮助的是生成JSON,该JSON将为每个Task记录生成Heatmap。
我将从MySQL数据库中提取任务的任务活动。
因此,我应该能够查询数据库,以计算每天在Task的活动DB表中创建的所有记录。
我的Heatmap的开始和结束日期将是设置为创建任务记录的日期的开始日期。结束日期将是今天的日期。
假设我的MySQL数据库结构如下所示:
Table name: task_activities
activity_id
task_id
activity_type
created_datetime
因此,当
task_id
=我要为其构建JSON输出的Task记录时,我将需要计算每天的记录总数。JSON输出必须采用以下格式:
{
"timestamp": 5,
"timestamp2": 2,
"timestamp3": 4,
...
}
timestamp
需要代表日期,该值将是该任务ID当天MySQL活动记录的总数。有人可以帮我生成所需的MySQL,以这种格式生成JSON结果,其中每天是
Timestamp
值,数字是该任务记录在给定日期的活动总数? 最佳答案
您希望按日期将数据汇总在一起,而与一天中的时间无关,但是每行中的date元素都包含一个时间。因此,您需要提取date_created
字段的日期部分:
SELECT DATE_FORMAT(DATE(`date_created`), '%Y-%m-%dT00:00:00') AS `date`,
COUNT(`event_id`) AS `count`
FROM `task_activities`
WHERE `task_id`='242'
GROUP BY DATE(`date_created`);
GROUP BY DATE()
片段仅将日期部分用作分组元素。 DATE_FORMAT()
片段返回以自定义方式格式化的日期。有关可用的修饰符,请参见MySQL date & time documentation。这是SQL fiddle演示行为。
关于javascript - 从MySQL数据库生成JSON结果,其中每天有任务记录的记录总数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30899162/