MySQL每月平均日期

时间:2016-11-22 12:39:22

标签: mysql sql datetime

我有例如数据库:

date1      | date2      | datediff
2016-11-02 | 2016-11-05 | 3
2016-11-08 | 2016-11-10 | 2
2016-11-01 | 2016-11-05 | 4
2016-11-09 | 2016-11-09 | 0
2016-11-15 | 2016-11-20 | 5

我使用以下sql获取日期:

select 
datediff(date2, date1)
from table

现在我需要每个月的平均日期, 在这种情况下 2016-11:2.8

先谢谢帕特里克。

5 个答案:

答案 0 :(得分:2)

您可以使用月份(),AVG和分组

select year(date1), month(date1), avg(datediff(date2, date1))
from my_table 
group by year(date1), month(date1)
;

答案 1 :(得分:1)

我认为你可以使用group by

select year(date1), month(date1), AVG(datediff(date2, date1))
from table
group by year(date1), month(date1);

答案 2 :(得分:1)

@{
   Layout = ViewBag.Context == "AA" ? "~/Views/Shared/_Layout_AA.cshtml" : "~/Views/Shared/_Layout.cshtml" ;
  }

答案 3 :(得分:1)

您可以使用LAST_DAY() function获取当月的最后一天的任何日期/时间值。 (这听起来比它更具启示性。)这对分组很有用。

所以,试试

 SELECT LAST_DAY(date1) month_ending, AVG(DATEDIFF(date2,date1)) datediff
   FROM table
  GROUP BY LAST_DAY(date1)
  ORDER BY LAST_DAY(date1)

答案 4 :(得分:0)

select avg(datediff(date2, date1))as difference
from table
group by year(date1),month(date1)