mysql 周_MySQL的跨年周统计问题
在mysql中,如果要查询的表中只有日期字段,但是业务需求要按照周分组,排序的话,mysql提供了多种方法;
1。date_format
DATE_FORMAT(date, format) 函数根据format字符串格式化date值。
这里可以使用 date_format(date,"%Y-%U")将日期格式化为year-week的方式(注意大小写,Y、U以及更多格式化支持的字符串可以百度或者参考下方文章链接),
然后在分组排序就很简单了,不过这里有一个问题,就是标题所示,跨年使用这种方式;
在mysql中执行下列语句:
select date_format("2017-12-31","%Y-%U"),date_format("2018-1-1","%Y-%U");
结果显示如下
%U代表的是第0周开始的,使用星期天作为一周的第一天,当遇到本年的第一个星期天时,就是第 1 周了,今年第一个星期天之前的天数就当做今年的第0周
当遇到同一周跨年的时候,12月份的算作去年的最后一周,1月份的算作今天的第0周就不对了,
如2017-12-31和2018-01-01是在同一周(周日-周六为同一周),所以这种方法有误
可以用格式符%X-%V代替
select date_format("2017-12-31","%X-%V"),date_format("2018-1-1","%X-%V");
结果显示如下
%V 与 %U 一样的地方就是也是使用周日作为一周的开始,并且也是遇到第一个周日开始算作是第一周,但是这两个对这个下一年第一个周日之前的这几天处理不一样,%U是把下一年之前的几天算作第0周而%V是把下一年之前的几天算作上一年的最后一周,所以使用%X-%V这样的格式符就能解决问题
2.YEARWEEK
.MySQL 的 YEARWEEK 是获取年份和周数的一个函数,函数形式为 YEARWEEK(date[,mode])
mode的值从0-7,分别指示每周的第一天是周几,具体可以百度或者参考下方链接文章
select YEARWEEK("2017-12-31",),YEARWEEK("2018-1-1");
结果显示如下
mysql 周_MySQL的跨年周统计问题相关推荐
- mysql 月的周_mysql 按月/按周集锦统计函数 DATE_FORMAT() 函数_mysql
mysql 按月/按周汇总统计函数 DATE_FORMAT() 函数 定义和用法 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法 DATE_FORMAT(date,form ...
- MySQL的跨年周统计问题(%X-%V)
MySQL的跨年周统计问题 最近在做项目的时候,发现了一个报表在进行周统计并且跨年的时候会出现问题,具体问题截图如下:(主要与%X-%V的时间格式符有关) 2016-12-18 ~~ 2017-01- ...
- mysql 以周为单位记录数据_mysql 按月/按周汇总统计函数 DATE_FORMAT() 函数
MySQL DATE_FORMAT() 函数 定义和用法 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法 DATE_FORMAT(date,format) date 参数是 ...
- mysql 某个时间段之前_MySql按日期时间段进行统计(前一天、本周、某一天、某个时间段)...
在mysql数据库中,常常会遇到统计当天的内容. 例如,在user表中,日期字段为:log_time 统计当天 sql语句为: select * from user where date(log_ti ...
- sql求平均日活_日活、周活(周重活)、月活 统计
效果展示: 以上数据为测试数据 实现思路: 按照查询天数往前推规定天 比如周.月 登录表为按月分表(数据量大约一张表1000W+数据) 关键sql: laravel5.1 框架 日活实现方式一: 不使 ...
- C语言编程>第六周 ⑥ 输入一串字符,统计大大写字母的个数,并强调统计必须用函数。
例题:输入一串字符,统计大大写字母的个数,并强调统计必须用函数. 代码如下: #include <stdio.h> #include <string.h>//字符头文件 int ...
- mysql工作日_mysql自定义函数计算时间段内的工作日(支持跨年)
① 同一年的情况下计算工作日函数 CREATE DEFINER=`root`@`%` FUNCTION `WORKDAYSONEYEAR`(`datefrom` datetime,`dateto` d ...
- 日活、周活(周重活)、月活 统计
效果展示: 以上数据为测试数据 实现思路: 按照查询天数往前推规定天 比如周.月 登录表为按月分表(数据量大约一张表1000W+数据) 关键sql: laravel5.1 框架 日活实现方式一: 不使 ...
- 【mysql】获取指定日期是当年第几周,指定日期所在周的开始和结束日期
描述 最近在刷mysql的题目,遇到指定日期是当年第几周的问题. 解决 0.总结 先总结,具体使用和区别看下文: # 一.返回第几周 select date_format('2023-01-01',' ...
最新文章
- Python学习心得(二) 字典Dictionary
- 服务器和芯片有什么区别,物联网模块和芯片的区别
- 【正一专栏】曼彻斯特德比落幕——曼城独孤求败继续超神
- 【Elasticsearch】检查您的 Elasticsearch 分片
- php怎么获取栏目,thinkphp获取栏目和文章当前位置的方法
- 从数组中删除最后一项
- 初用WEB IOU,IE LAB备战启航
- vector怎么排序_零基础的人怎么学习Java
- 2007上半年网络游戏企业报告总结
- 【工业大数据】35页PPT讲解:工业大数据特点、价值及其计算
- 谷歌浏览器如何截全屏长图,超级方便实用
- 光谱共焦的干涉测量原理及厚度测量模式
- QT编写BarChart直方图
- 【linux内核分析与应用-陈莉君】内核同步措施
- HTML5+CSS3制作透视正方体
- 关于C#怎样跨磁盘移动文件夹(比如C盘文件夹复制到D盘)
- centos6 安装完epel 解决yum的问题
- 部署Vista(9)——配置OOBE实现完全自动化
- python数据去重(pandas)
- Create React App proxy配置
热门文章
- 创意自画像及简单交互
- 【JavaScript 基础】-- 数组切割splice和slice
- python编程中文名_Python编程实战中遇到的几种需要化名的情境
- 详解:Hyper-V虚拟主机数据磁盘扩容
- day82_babasport第八天
- Nginx 联合创始人已被释放:“这是典型的敲诈,就这么简单”
- csdn博客markdown编辑器下修改图片大小及文字颜色
- The Data Science of Gaming and Fantasy Sports 游戏与幻想体育的数据科学 Lynda课程中文字幕
- 计算机网络——电子邮件客户端程序设计与实现
- 什么是Web服务器,如何配置