如何实现sql中时间以5分钟半个小时任意间隔分组
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章主要介绍了如何实现sql中时间以5分钟半个小时任意间隔分组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。开发中遇到过问题就是对
千家信息网最后更新 2025年11月16日如何实现sql中时间以5分钟半个小时任意间隔分组
这篇文章主要介绍了如何实现sql中时间以5分钟半个小时任意间隔分组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
开发中遇到过问题就是对时间以半个小时分钟分组,如统计08:00-08:30的人数,08:30-09:00的人数,貌似sql中没有这样的函数吧,直接从数据库里查出来,在java里分组也太low了吧
想到方法1 自定义函数,自己实现时间的半个小时转换,统计时调用函数
CREATE FUNCTION `date_half_hour_format`(in_date TIMESTAMP) RETURNS TIMESTAMPBEGIN DECLARE out_date TIMESTAMP; DECLARE s_date VARCHAR(255); DECLARE s_minute VARCHAR(2); DECLARE int_minute INT; SET s_minute = SUBSTRING(in_date, 15, 2); SET int_minute = CAST(s_minute AS SIGNED); IF int_minute <= 29 THEN SET int_minute = 0; SET s_date = CONCAT(LEFT(in_date, 14),'0',int_minute); ELSE SET int_minute = 30; SET s_date = CONCAT(LEFT(in_date, 14),int_minute); END IF; SET out_date = STR_TO_DATE(s_date,'%Y-%m-%d %H:%i'); RETURN out_date; END
方法2 学过c语言更清楚c语言创建时间都是一个long的时间戳,可以对时间做除法运算,就是时间long的值除以30*60,这样就能得出半个小时的时间了,mysql中有函数unix_timestamp获取long的时间,从long转date的form_unixtime
SELECT FROM_UNIXTIME((UNIX_TIMESTAMP(CURRENT_TIMESTAMP) DIV 1800)*1800)
这样就可以按任意时间分组了
ps:SQL Server 时间查询
select dateadd(dd,-day(getdate()) + 1,getdate()) '当月起始时间' //查询当月起始时间select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) '当月结束时间' //查询当月结束时间select dateadd(dd,-day(dateadd(month,-1,getdate()))+1,dateadd(month,-1,getdate())) '上月起始时间' //查询上月起始时间select dateadd(dd,-day(getdate()),getdate()) '上月结束时间' //查询上月结束时间select dateadd(quarter,datediff(quarter,0,getdate())-1,0) as '当前季度的上个季度初' //查询当前季度的上个季度开始时间select dateadd(quarter,datediff(quarter,0,getdate()),-1) as '当前季度的上个季度末' //查询当前季度的上个季度结束时间select dateadd(quarter,datediff(quarter,0,getdate()),0) as '当前季度的第一天' //查询当前季度起始时间select dateadd(quarter,1+datediff(quarter,0,getdate()),-1) as '当前季度的最后一天' //查询当前季度结束时间select dateadd(quarter,1+datediff(quarter,0,getdate()),0) as '当前季度的下个季度初' //查询当前季度下个季度开始时间select dateadd(quarter,2+datediff(quarter,0,getdate()),-1) as '当前季度的下个季度末' //查询当前季度下个季度结束时间select dateadd(year,datediff(year,0,DATEADD(year,-1,getdate())),0) '去年的第一天' //去年的第一天select dateadd(year,datediff(year,0,getdate()),-1) '去年最后一天' //去年的最后一天select dateadd(year, datediff(year, 0, getdate()), 0) '当年的第一天' //当年的第一天select dateadd(year,datediff(year,0,dateadd(year,1,getdate())),-1) '当年的最后一天' //当年的最后一天
感谢你能够认真阅读完这篇文章,希望小编分享的"如何实现sql中时间以5分钟半个小时任意间隔分组"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
时间
季度
查询
小时
分组
起始
函数
篇文章
中时
人数
就是
方法
语言
统计
清楚
价值
兴趣
同时
数据
数据库
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
某数据库系统的技术经济指标
数字化网络技术产业链
关系型数据库基础讲解
梦享网络技术有限公司
学习通信息系统数据库
python服务器性能
U8委外核销数据库表名
数据库连接速度查询
安徽专业网络技术服务标准
广东企业软件开发定制
修改数据库表的语句是
云南知名软件开发报价
华为h2288v5服务器
中国前10服务器厂商
提取大于零的数据库
服务器任务管理
厦门千云软件开发
如何还原数据库
网络安全法是后感
怀柔区提供软件开发专业服务
数据库查询第几条到第几条记录
死亡循环服务器加速
数据库学生信息查询有地址
大学生最主要的网络安全
昆山创盈互联网科技
盈达网络技术老于直播
中级网络安全师含金量
百度盘服务器ip
软件开发淘宝好评评语
虚云网络技术有限责任公司