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 相关文章推荐
如何使用Maxwell实时同步mysql数据
Apr 08 MySQL
浅谈mysql执行过程以及顺序
May 12 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL 8.0 驱动与阿里druid版本兼容问题解决
Jul 01 MySQL
基于MySql验证的vsftpd虚拟用户
Nov 07 MySQL
MySQL的索引你了解吗
Mar 13 MySQL
navicat 连接Ubuntu虚拟机的mysql的操作方法
Apr 02 MySQL
Golang连接并操作MySQL
Apr 14 MySQL
MySQL 数据表操作
May 04 MySQL
MySQL分布式恢复进阶
Jul 23 MySQL
MySQL常用慢查询分析工具详解
Aug 14 MySQL
MySQL新手入门进阶语句汇总
Sep 23 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
咖啡语言
2021/03/03 咖啡文化
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
php接口隔离原则实例分析
2019/11/11 PHP
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
Node.js模块加载详解
2014/08/16 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
怎样使用Python脚本日志功能
2016/08/14 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
医学专业应届生的自我评价
2014/02/28 职场文书
创业计划书之网吧
2019/10/10 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
python处理json数据文件
2022/04/11 Python
Python 文字识别
2022/05/11 Python