Mysql DATE_ADD 1小时,我想分钟是15,或30



我想做的是为当前日期添加1小时+使分钟在15分钟或30分钟内。例子:

'2022-05-19 22:13:28'
I want it to be :
'2022-05-19 23:15:00'

另一个例子

'2022-05-19 22:24:00'
I want it to be:
'2022-05-19 23:30:00'
SELECT FROM_UNIXTIME(3600 + 900 * CEIL(UNIX_TIMESTAMP(datetime_column) / 900))
FROM table

UNIX_TIMESTAMP将datetime转换为秒数。

/ 900计算15min的量。

CEIL将最后一个不完整块转换为完整块。

* 900将块数量转换回秒。

+ 3600增加一个小时。

FROM_UNIXTIME将秒数转换为日期时间。

假设它已经有15分钟了,它只会增加一个小时,你必须对时间做一些计算,然后重新将其添加到日期:

select date_add(date(d), interval ceil(time_to_sec(d)/900)*900+3600 second)
from (select '2022-05-19 22:13:28' d union all select '2022-05-19 22:24:00' union all select '2022-05-19 22:15:00' union all select '2022-05-19 21:59:00' union all select '2022-05-19 21:44:00') foo

除以900秒,上限,再乘以900,四舍五入到最接近的15分钟。

相关内容

  • 没有找到相关文章