如何实现sql中时间以5分钟半个小时任意间隔分组
发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,这篇文章主要介绍了如何实现sql中时间以5分钟半个小时任意间隔分组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。开发中遇到过问题就是对
千家信息网最后更新 2024年10月27日如何实现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安全错误
数据库的锁怎样保障安全
网络技术公司需要缴那些税
路由器搭建mysql数据库
sql事件探查器单个数据库
深圳高级软件开发培训班
计算网络技术培训
服务器装ftp
连接.代理服务器
网络安全小口令
深圳潮流网络技术
广州交友软件开发哪家实惠
网络安全威胁的主要内容
登服务器
网络安全法知识竞赛信息报送
数据库做仓库管理软件
征途2为什么不显示服务器
学校网络安全意识培训美篇
山东在线项目管控软件开发平台
服务器怎么看是单网卡还是双网卡
关于网络安全宣传周的事
杭州鲸熹网络技术有限公司
mdsql数据库
郑州软件开发需求
tbc如何选服务器
广州鼎汉网络技术
审批流程数据库
网络安全管理监控系统
海门选择网络技术创新服务
网络安全学习视频是随便看的吧
互联网消费金融科技投入
饥荒游侠怎么开专用服务器