mysql 生成连续日期及变量赋值


Posted in MySQL onMarch 20, 2022

1、生产连续日期

说明:主要作用于一些统计数据,来根据时间顺序进行显示;
假如数据库数据有隔天数据,偏偏统计又需要每天的都显示,即便是0,那就要生成一个时间表,来使用;

查询数据库数据:

SELECT
        DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date,
        COUNT(1) AS numb
FROM
    qc_task 
    WHERE
    create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and
    department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ)) 
    GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )

隔天时出数据:

mysql 生成连续日期及变量赋值

这样是不是就不好看了,如果非要说加个order by 1 desc 排一下,也可以…
但是就算排出来,时间也是不连贯的;

生成最近7天的日期:

// 方法笨,但还是有效的
select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from 
 (SELECT @num:=@num+1 as sj from 
            (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t, 
           -- (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t1,  -- 假如嫌弃生成的少,打来这个就行
            (SELECT @num:=0) y) as timeList

生成的时间:

mysql 生成连续日期及变量赋值

生成后使用:

-- 生成后左右链接即可,但主表要为时间表
SELECT f.datetime, t.numb FROM 
(SELECT
        DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date,
        COUNT(1) AS numb
FROM
    qc_task 
    WHERE
    create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and
    department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ)) 
    GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )) t
right join 
(select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from 
 (SELECT @num:=@num+1 as sj from 
            (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t, 
            (SELECT @num:=0) y) as timeList) f  on t.date = f.datetime ;
            

使用后效果:

mysql 生成连续日期及变量赋值

我这里是数据库没有数据…所以看不到有数量显示

2、变量赋值

看到第一个里面 @符号很多是吗,那些都是变量,如果把查询语句放进去,整个查询语句就显得太臃肿了,会很长…所以有些东西可以拆分出去;

比如在查询数据库语句中的:

mysql 生成连续日期及变量赋值

来看下他们的真面目:

#  查询部门区域编号
SELECT @dep_BH:=(SELECT area_code FROM qc_department WHERE dept_name = "历下区");
#  查询部门等级
SELECT @dep_DJ:=(SELECT dept_level FROM qc_department WHERE dept_name = "历下区");

到此这篇关于mysql 生成连续日期及变量赋值的文章就介绍到这了,更多相关mysql 连续日期与变量赋值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
SQL实现LeetCode(178.分数排行)
Aug 04 MySQL
详解MySql中InnoDB存储引擎中的各种锁
Feb 12 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
MySQL学习之基础操作总结
Mar 19 MySQL
Innodb存储引擎中的后台线程详解
Apr 03 MySQL
WINDOWS下安装mysql 8.x 的方法图文教程
Apr 19 MySQL
讲解MySQL增删改操作
May 06 MySQL
mysql如何查询连续记录
May 11 MySQL
MySQL脏读,幻读和不可重复读
May 11 MySQL
mysql sock文件存储了什么信息
Jul 15 MySQL
Mysql的Table doesn't exist问题及解决
Dec 24 MySQL
MySQL派生表联表查询实战过程
MySQL学习之基础命令实操总结
Mar 19 #MySQL
MySQL学习之基础操作总结
Mar 19 #MySQL
Pycharm远程调试和MySQL数据库授权问题
Mar 18 #MySQL
MySQL 主从复制数据不一致的解决方法
浅谈redis的过期时间设置和过期删除机制
MySQL读取JSON转换的方式
Mar 18 #MySQL
You might like
如何使用PHP中的字符串函数
2006/11/24 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
PHP Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
web 页面分页打印的实现
2009/06/22 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
python web框架 django wsgi原理解析
2019/08/20 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
python tqdm库的使用
2020/11/30 Python
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
文明班级建设方案
2014/05/15 职场文书
国际商务专业求职信
2014/07/15 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
python读取mat文件生成h5文件的实现
2022/07/15 Python