Mysql 给定启动日期(y/m/d)和截止日期(y/m/d)列,如何在SQL上编写duration命令?
我对SQL非常陌生,所以很抱歉我提出了一个noob问题 我得到了一张要分析的表格,我想在我制作的一个名为“持续时间”的新专栏中找到所有启动日期和截止日期之间经过的天数。然后我想找出那些日子的平均值。我会为此写什么命令 -------------- 启动|截止日期|持续时间| --------------- 平均|平均|平均 这就是我想做/找到的。我不知道如何开始/写它 使用datediffMysql 给定启动日期(y/m/d)和截止日期(y/m/d)列,如何在SQL上编写duration命令?,mysql,sql,Mysql,Sql,我对SQL非常陌生,所以很抱歉我提出了一个noob问题 我得到了一张要分析的表格,我想在我制作的一个名为“持续时间”的新专栏中找到所有启动日期和截止日期之间经过的天数。然后我想找出那些日子的平均值。我会为此写什么命令 -------------- 启动|截止日期|持续时间| --------------- 平均|平均|平均 这就是我想做/找到的。我不知道如何开始/写它 使用datediff select datelaunched, deadline, datediff(day, datelaun
select datelaunched, deadline, datediff(day, datelaunched, deadline)
union all
select avg(datelaunched), avg(deadline), avg(datediff(day, datelaunched, deadline))
我推测你想要这样的东西:
select avg(timestampdiff(day, datelaunched, deadlined)) as avg_dur_days
from t;
所以有一个截止日期和一个实际的发射日期,可以在截止日期之前或之后?然而,你不想知道截止日期的完成与否,你只想知道两者之间的平均天数?因此,两个项目(?)提前一周完成,一个延迟两周完成,你想显示数字0吗?请看下面的答案-这对你有用吗?我认为你需要提供样本数据和期望的结果。顺便说一下,你不应该在表中存储冗余数据。你所谓的持续时间似乎只是两个日期之间的差异。您总是可以从现有列中检索到这一点。通过示例数据和预期输出的示例,可以更清楚地说明规范。我有点理解答案。但是,对MySQL语法不正确的答案进行一次向上投票是很奇怪的。我很好奇对日期值取一个“平均值”。。。是否将日期强制转换为数字YYYYMMDD,取数值的平均值,并返回可能不是有效日期的十进制值?为什么?(DATEDIFF函数接受两个参数,我们是否打算使用TIMESTAMPDIFF?)