我在mysql中有一个包含 start_date
, end_date
以及 id
这样地
start_date end_date id
---------------------------------------------
2018-01-01 2018-01-01 5
2018-01-03 2018-01-03 5
2018-01-03 2018-01-08 5
2018-01-06 2018-01-07 7
2018-01-07 2018-01-07 7
2018-01-09 2018-01-11 7
2018-01-02 2018-01-02 8
2018-01-02 2018-01-04 8
2018-01-08 2018-01-08 9
我想要在mysql中输出id-like的总天数。
total_days id
-------------------------
7 5
5 7
3 8
1 9
特定ID的日期之间有一天的间隔。请检查每个id的开始和结束日期。我认为需要将所有日期放在一个序列中,然后计算从第一天到下一天的天数。我不知道怎么做。 2018-01-08
至 2018-01-08
应该有一天。 2018-01-08
至 2018-01-09
应该是2天,但不是1天。请帮忙。程序正在用php开发。。
4条答案
按热度按时间jexiocij1#
datediff函数在输出中支持减号和加号:
8wtpewkr2#
选择distinct id,从表\u name中将(开始\u日期-结束\u日期)计数为“总计\u天”
waxmsbnn3#
我发现在硬核mysql中这是不可能的。我需要使用编程语言。因为我用php开发软件,所以我用php代码计算了天数。我对所有日期逐个排序,然后计算每个日期之间的天数。谢谢所有回答我问题的人。
6ju8rftf4#
您正在查找datediff函数:
ms sql服务器:
mysql数据库:
演示小提琴:演示
datediff文档ms sql server:ms sql server datediff
datediff文档mysql:mysql datediff