今天在写一个关于上一周每天的流量数据查询,起初的想法是用week函数来处理这个问题,用week函数减一,然后按WEEKDAY来分组,即可得到上周的数据。

SELECT

WEEKDAY(a.leave_time) AS '星期',
COUNT(a.leave_time) AS '出场流量'
FROM
(
SELECT
a.leave_time
FROM
biz_vehicle_collect_fee_record_day a
WHERE
YEAR(a.leave_time)=YEAR(NOW()) AND WEEK(a.leave_time)= WEEK(NOW()) -1
UNION
SELECT
b.leave_time
FROM
biz_vehicle_collect_fee_record_his b
WHERE
YEAR(b.leave_time)=YEAR(NOW()) AND WEEK(b.leave_time)= WEEK(NOW()) -1
) a
GROUP BY

WEEKDAY(a.leave_time)

刚开始觉得这样并没有问题,在测试的时候发现在跨年的情况下就不适用了,这使得week()-1是0,而不是上一年的最后一周。

因此只能想其他办法去解决,这是的思路就是:将时间放在函数内部处理,然后在去和数据库的时间进行比较。

解决方案如下:

SELECT
WEEKDAY(a.leave_time) AS '星期',
COUNT(a.leave_time) AS '出场流量'
FROM
(
SELECT
a.leave_time
FROM
biz_vehicle_collect_fee_record_day a
WHERE
YEARWEEK(a.leave_time,1) = YEARWEEK(DATE_SUB(NOW(), INTERVAL 7 DAY),1)
UNION
SELECT
b.leave_time
FROM
biz_vehicle_collect_fee_record_his b
WHERE
YEARWEEK(b.leave_time,1) = YEARWEEK(DATE_SUB(NOW(), INTERVAL 7 DAY),1)
) a
GROUP BY
WEEKDAY(a.leave_time)

如上,利用DATE_SUB(NOW(), INTERVAL 7 DAY) 函数,先对时间惊醒处理,减去七天,然后再用 YEARWEEK函数去跟数据库里的时间进行筛选,最后再按WEEKDAY分组,这样就可以处理掉跨年时的问题了。

mysql 查询上一周每一天的数据(含跨年问题)相关推荐

  1. PHP+Mysql查询上一篇和下一篇文章实例

    PHP+Mysql查询上一篇和下一篇文章实例 简单的PHP+Mysql查询上一篇和下一篇文章实例,并输出上一篇和下一篇文章的标题和链接,适合新手学习 获取当前浏览文章id: 1 $id = isset ...

  2. mysql 查询某个日期时间段,每天同一时间段的数据

    mysql 查询某个日期时间段,每天同一时间段的数据: SELECT * FROM t_a01_eltable WHERE DATE_FORMAT(acqtime,'%Y-%m-%d')>='2 ...

  3. mysql 查询近两周的记录_查询近一周、近两周的数据

    一.利用mysql函数TO_DAYS,通过该函数计算返回的是天数 示例:查询近一周的数据 select * from table where TO_DAYS(NOW()) - TO_DAYS(fiel ...

  4. mysql 查询最近两周,总数量每天的递增情况

    1.场景 我们常常会遇到这样的一个场景,老板想要看折线图,最近每天用户的总增长数,比如2021.01.17  总人数为396,2021.01.18  总人数为396(18号那天没有新增,和17号的总数 ...

  5. Mysql查询上一页下一页id

    也是第一次写这两个功能,,之前写的都是按照createTime创建时间来排序获取上一页下一页id 后来发现如果数据的创建时间一样的话就会出现问题 于是参考了这个博客 mysql排序后获取上一条记录和下 ...

  6. MySQL查询当前时间的前几天的数据

    查询5分钟前的数据 select * from table where end_date between date_add(now(), interval - 300 SECOND) and NOW( ...

  7. mysql查询这一周数据库_mysql如何查询当前时间是星期几?

    select date_format(curdate(),'%w') from dual; 更多参考: MySQL中DATE_FORMAT(date, format)函数可根据format字符串格式化 ...

  8. MySQL 统计上一周从周一到周日的用户

    这个功能按理说很常见,奇怪的是很难搜索到一个合适的.稍微整理了下,具体的就不展开了,注意这个表中的时间为毫秒,这条语句拷贝复制就能用.照顾大部分的无脑码农. SELECTcasewhen FROM_U ...

  9. MySQL按 年 月 周 日统计表中的数据

    今天在做统计报表的时候,需要对表数据按年.月.周和日分别进行统计.统计用到了MySQL日期函数DATE_FORMAT.YEAR.QUARTER.MONTH和WEEK,本文就这些函数的使用和功能实现进行 ...

最新文章

  1. GridView 导出为Excel
  2. GlusterFS-FUSE
  3. Spring Boot 使用AOP实现多个数据库源的读写分离
  4. jakarta_适用于Java EE / Jakarta EE开发人员的Micronaut
  5. Mysql-linux下密码修改,忘记密码修改,超级管理用户修改
  6. Python面向对象基础示例_创建对象
  7. C++学习笔记-----二分法之寻找非减序列第一个大于某个值的数或最后一个小于某个值的数
  8. hadoop安装与配置
  9. centos安装与配置R语言
  10. 在 WSL Ubuntu 上使用 .NET 进行跨平台开发新手入门
  11. java验证工具类(待验证)
  12. mysql高级操作_MySQL数据库的高级操作
  13. 将矩阵转为一行_理解矩阵乘法
  14. UNIX环境高级编程——记录上锁(fcntl函数)以及死锁检测
  15. LuatOS-HMI概述
  16. 浅谈 Spring 中的设计模式
  17. 迅雷下载百度网盘的资源
  18. java读书网站课程设计_Java课程设计
  19. execute与executeUpdate的区别(学习笔记)
  20. 明解C语言(中级篇)—第二章

热门文章

  1. 2022年天津最新建筑八大员(电气)模拟考试题库及答案
  2. 文献阅读-Clinical and Biological subtypes of B-cell lymphoma revealed by microenvironment signature
  3. WINCC 报警语音播报
  4. 报告称国内超八成城市房价跌回一年前 北京上海回涨
  5. 【算法】求解幂集问题
  6. FormulaR1C1是公式输入方法
  7. 华为西安,中兴西安——近况
  8. Linux 软件包安装
  9. WPF 设置属性“System.Windows.FrameworkElement.Style”时引发了异常
  10. RAID卡及其管理工具