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开发之自动同步表结构
May 28 MySQL
MySQL GRANT用户授权的实现
Jun 18 MySQL
MySQL里面的子查询的基本使用
Aug 02 MySQL
mysql配置SSL证书登录的实现
Sep 04 MySQL
面试被问select......for update会锁表还是锁行
Nov 11 MySQL
Mysql中有关Datetime和Timestamp的使用总结
Dec 06 MySQL
mysql 生成连续日期及变量赋值
Mar 20 MySQL
MySQL普通表如何转换成分区表
May 30 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 MySQL
MySQL添加索引特点及优化问题
Jul 23 MySQL
SQLServer常见数学函数梳理总结
Aug 05 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
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
python调用windows api锁定计算机示例
2014/04/17 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python实现名片管理系统
2018/11/29 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
python验证码图片处理(二值化)
2019/11/01 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
python如何编写win程序
2020/06/08 Python
Python中的With语句的使用及原理
2020/07/29 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
计算机专业毕业生的自我评价
2013/11/18 职场文书
教师自我鉴定
2013/12/13 职场文书
办公室前台岗位职责
2014/01/04 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
python 命令行传参方法总结
2021/05/25 Python
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js