Mysql 日期、日期差异和总和

Mysql 日期、日期差异和总和,mysql,sql,sum,Mysql,Sql,Sum,您好,我有一个包含以下列的表: ID int 开始日期 结束日期 表: 22/08/2000 - 23/08/2000 24/08/2000 - 28/08/2000 01/08/2000 - 29/08/2000 26/08/2000 - 30/08/2000 example... 24/08/2000 - 28/08/2000 ===>> 4 days 26/08/2000 - 30/08/2000 ===>> 4 days 求和==>>8天,我需要得到6天,因为

您好,我有一个包含以下列的表:

ID int 开始日期 结束日期 表:

22/08/2000 - 23/08/2000
24/08/2000 - 28/08/2000
01/08/2000 - 29/08/2000
26/08/2000 - 30/08/2000

example...
24/08/2000 - 28/08/2000 ===>> 4 days
26/08/2000 - 30/08/2000 ===>> 4 days
求和==>>8天,我需要得到6天,因为在2001年8月24日和2000年8月30日之间,我有6天而不是8天,这可能吗


我想得到这张图片中的数千个日期:

这能达到你的目标吗

SELECT MAX(End_Date) - MIN(Start_Date)
FROM MyTable
WHERE (Start_Date >= #2000-08-24# AND End_Date <= #2000-08-30#);

我没有检查SQL字符串的有效性。

你对中间值的定义是什么:是否包括第一天和最后一天?据我所知,数学或日期代数中没有规定两个差值之和等于一个差值的最小值与另一个差值的最大值之差。例如:4-10=6;5 - 12 = 7; 差值之和是13,最小值和最大值之差,在这种情况下,12-4等于8,而不是13。那么,为什么你认为你两次约会的时间差之和应该等于2000年8月24日和2000年8月30日的时间差呢?而且,你的数学也错了。2000年8月24日-2000年8月28日=-4天。但是如果你得到的只是差值,这将是绝对值,你应该指定,因为将你显示的两个日期中的任何一个倒数4天将得到0。最后一点,如果预期的差值是给定日期之间的日期,但不是实际日期,您可能会遇到一些麻烦,因为2000年8月24日-2000年8月25日和2000年8月24日-2000年8月24日都是0天。这意味着2000年8月24日-2000年8月25日和2000年8月22日-2000年8月23日的总和将是0,而你的另一个假设是,根据我们是在进行实际减法还是在几天内进行减法,总和应与2000年8月25日-2000年8月23日的总和为2或1