设为首页 收藏本站
查看: 1127|回复: 0

[经验分享] [MySQL] 按年度、季度、月度、周、日统计查询

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-13 09:25:47 | 显示全部楼层 |阅读模式
该死的mysql没有提供unix时间戳的专门处理函数,所以,如果遇到时间分组,而你用的又是整型unix时间戳,则只有转化为mysql的其他日期类型!
   FROM_UNIXTIM()将unix时间戳转为datetime等日期型!  
一、年度查询
查询 本年度的数据
SELECT *
FROM blog_article
WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( ))  
二、查询季度数据
查询数据附带季度数
SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) )
FROM `blog_article`
其他的同前面部分:查询 本季度的数据
SELECT *
FROM blog_article
WHERE quarter( FROM_UNIXTIME( BlogCreateTime ) ) = quarter( curdate( ))  
三、查询月度数据
本月统计(MySQL)
select * from booking where month(booking_time) =  
month(curdate()) and year(booking_time) = year(curdate())  
本周统计(MySQL)  
select * from spf_booking where month(booking_time) =  
month(curdate()) and week(booking_time) = week(curdate())  
四、时间段  
N天内记录  
WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段) <= N  
当天的记录  
where date(时间字段)=date(now())

where to_days(时间字段) = to_days(now());  
查询一周:
select * from table   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);  
查询一个月:
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);  
查询'06-03'到'07-08'这个时间段内所有过生日的会员:  
   Select * From user Where  
DATE_FORMAT(birthday,'%m-%d') >= '06-03' and DATE_FORMAT(birthday,'%m-%d')  
<= '07-08';  
统计一季度数据,表时间字段为:savetime
group by concat(date_format(savetime, '%Y '),FLOOR((date_format(savetime, '%m ')+2)/3))

select YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1,count(*)  
from yourTable  
group by YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1;  
五、分组查询
   1、年度分组  
   2、月度分组  
   3、先按年度分组,再按月度分组  
   4、按年月分组
   SELECT count(ArticleId), date_format(FROM_UNIXTIME( `BlogCreateTime`),'%y%m') sdate  FROM `blog_article` group by sdate  
   结果:
    count( ArticleId )     sdate
17     0901
11     0902
5     0903
6     0904
2     0905
1     0907
12     0908
6     0909
11     0910
3     0911





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25906-1-1.html 上篇帖子: [MySQL] 查询一段时间记录 下篇帖子: [MySQL] 按日期进行统计(前一天、本周、某一天) 统计
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表