mysql时间偏移,MySQL - 如何将小时分组,偏移30分钟

I'd like to select records in 1 hour intervals, along with the highest and loest value in the hour interval. I can do this on the hour (eg, 1:00 am, 2:00 am, 3:00 am), but I'd like to offset it by specified minutes (eg, 1:30 am, 2:30 am, 3:30 am, or 1:50am, 2:50 am, 3:50 am). I don't want to group by half-hour (eg 1:00, 1:30, 2:00, 2:30)

This is the SQL I have for 1 hour intervals:

select date(date) 'aDate', hour(date) 'aHour', date, bidOpen, max(bidHigh), min(bidLow)

from data

where date > "2010-10-10"

group by aDate, aHour

I tried: hour(date) + .5 'aHour' : but it didn't work.

Thanks !!

解决方案

A solution is to use an helper table which contains your timeslice.

The FromHour and ToHour are just strings

TABLE timeslice

ID | FromHour | ToHour | NextDay

---+----------+--------+-------

1 | 00:30 | 01:30 | 0

2 | 01:30 | 02:30 | 0

24 | 23:30 | 00:30 | 1

select date(date) aDate, ID ,date, bidOpen, max(bidHigh),min(bidLow)

from data inner join timeslice

ON date >= CONCAT(date(Date),' ',FromHour)

and date < concat(date(DATEADD(day,NextDay,date),' ',ToHour)

group by aDate, ID

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值