我试图计算存储在MYSQL中的日期之间的天数,同时考虑不同记录中的不同日期范围。
以下是一个示例表:
$scope.restorePosts = (function() {
return function() {
$scope.spliced_posts.forEach(function(x) {
return $scope.posts.push(x);
});
return $scope.spliced_posts = [];
};
});
预期结果: 由于tableID 1和3连续几天的结果应为 11 。 我不善于解释事情,所以如果你没有得到问题,请在下面评论。
答案 0 :(得分:0)
我可能首先将所有内容复制到临时表,然后移动不履行end_date = start_date +1
的记录,然后运行其余记录,更新它们以便start_date和end_date为所有序列都在同一记录中
这样的事情:
<强> Temp_table_1 强>
tableID User Start_Date End_Date
------- ---- ---------- ----------
1 111 2015-09-09 2015-09-15
2 111 2015-09-01 2015-09-02
3 111 2015-09-16 2015-09-21
4 111 2015-08-16 2015-08-21
5 111 2015-07-16 2015-07-21
将非连续记录移至temp_2
<强> Temp_table_1 强>
tableID User Start_Date End_Date
------- ---- ---------- ----------
1 111 2015-09-09 2015-09-15
3 111 2015-09-16 2015-09-21
<强> Temp_table_2 强>
tableID User Start_Date End_Date
------- ---- ---------- ----------
2 111 2015-09-01 2015-09-02
4 111 2015-08-16 2015-08-21
5 111 2015-07-16 2015-07-21
合并记录
<强> Temp_table_1 强>
tableID User Start_Date End_Date
------- ---- ---------- ----------
x 111 2015-09-09 2015-09-21
将合并记录移至临时2并计算差异
<强> Temp_table_2 强>
tableID User Start_Date End_Date Diff
------- ---- ---------- ---------- ------
2 111 2015-09-01 2015-09-02 2
4 111 2015-08-16 2015-08-21 5
5 111 2015-07-16 2015-07-21 5
x 111 2015-09-09 2015-09-21 11
看看,尝试编写程序,并更新您的问题,以便在遇到困难时寻求更多帮助。