mysql 最大间隔数,MySQL在特定时间间隔内创建的日期时间之间的平均小时数

我有一个表格,其中包含一个名为“created”的字段,它是一个日期时间字段 .

假设NOW()是2013-07-21的午夜,所以现在()= 2013-07-21 23:59:59

现在让我说我查询所有记录在哪里创建BETWEEN DATE_SUB(NOW(),INTERVAL 4 DAYS)和NOW()

假设返回的结果如下:

2013-07-18 08:00:00

2013-07-19 08:00:00

2013-07-20 08:00:00

2013-07-21 08:00:00

我想将我使用的间隔(4天)的开始和结束日期时间添加到该结果集中,所以现在我有:

2013-07-18 00:00:00(4天前从NOW())

2013-07-18 08:00:00

2013-07-19 08:00:00

2013-07-20 08:00:00

2013-07-21 08:00:00

2013-07-21 23:59:59(现在())

现在我想要一个查询,它将为我提供这6个日期时间结果之间的平均小时数 .

即(8 24 24 24 24 16)/ 6,平均为20小时 .

我在堆栈上发现了这个流量

SELECT

TIME_TO_SEC(TIMEDIFF(end,start)) AS timediff

FROM

Sessions

GROUP BY

DATE(start)

这个查询的问题是我必须每次运行它6次传递日期(在PHP循环中),然后添加所有结果和/ 6然后/ 3600 .

如何使用mySQL获得我想要的结果?

谢谢!

只是为了进一步澄清:

假设两件事 .

用户将选择日期范围(在本例中为7月21日至7月18日)

其他用户正在使用不同的服务,每次使用该服务时都会生成该创建的记录 .

第一个用户想知道第二个用户在所选日期范围之间平均(以小时为单位)使用第二个服务的频率 .

因此,它需要考虑2013-07-18 00:00:00和2013-07-18 08:00:00之间的时间(那些8小时的事情),最后16个小时也是如此,因为用户在这些时间段内没有使用该服务 .

基本上我不仅想要4个初始创建记录之间的平均小时数,我认为(如果我错了,请纠正我)这是戈登所建议的 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值