1:创建日期表:

CREATE TABLE `year_date_all` (
    `repDate` date NOT NULL COMMENT '日期',
    `repYear` int(8) NOT NULL COMMENT '年号',
    `repMonth` int(8) NOT NULL COMMENT '月',
    `repDay` int(8) NOT NULL COMMENT '天',
    `repWeek` int(8) NOT NULL COMMENT '周',
    `db_status` int(8) DEFAULT '0' COMMENT '0:工作日;1:周末休息日;2:法定休息日;3:调休工作日',
    PRIMARY KEY (`repDate`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='全年日期表';

2:创建存储过程插入函数

CREATE DEFINER=`root`@`localhost` PROCEDURE `getAllYearDateFunc`(in yaerParam int(8))
BEGIN
DECLARE count INT DEFAULT 0;
DECLARE startDay DATE ;
DECLARE yearNum INT DEFAULT 365;
DECLARE workOrWeek INT DEFAULT 1;
DECLARE yearBool INT DEFAULT 0;
DECLARE db_status_ INT DEFAULT 0;

SELECT count(*) INTO yearBool FROM year_date_all WHERE repYear=yaerParam;
IF yearBool=0 THEN
SET startDay = DATE(concat(yaerParam,'-01-01'));

IF yaerParam  % 4 = 0 AND yaerParam  % 100 <> 0 OR yaerParam  % 400 = 0 THEN 
  SET yearNum = 366;
ELSE
  SET yearNum = 365;
END IF;

WHILE count < yearNum DO
SET  workOrWeek = DAYOFWEEK(DATE_SUB(startDay,INTERVAL 1 day));
 IF (workOrWeek)>5 THEN  
   SET db_status_=1;
     
 ELSE 
   SET db_status_=0;
 END IF;
 
 INSERT INTO year_date_all(repDate,repYear,repMonth,repDay,repWeek,db_status) VALUES(startDay,YEAR(startDay),MONTH(startDay),DAY(startDay),WEEKOFYEAR(startDay),db_status_);
 SET count=count+1;
 SET startDay=DATE_ADD(DATE(startDay),INTERVAL 1 DAY);
END WHILE;

END IF;
END

3:执行,输入2022

4.运行结果

5.节假日修改:

update year_date_all set   db_status=1
where ( DATE_FORMAT(repDate,'%Y%m%d') >='20220101'
and  DATE_FORMAT(repDate,'%Y%m%d') <='20220103')
or (DATE_FORMAT(repDate,'%Y%m%d')>='20220131'
and DATE_FORMAT(repDate,'%Y%m%d')<='20220206')
or (DATE_FORMAT(repDate,'%Y%m%d')>='20220403'
and DATE_FORMAT(repDate,'%Y%m%d')<'20220405')
or (DATE_FORMAT(repDate,'%Y%m%d')>='20220430'
and DATE_FORMAT(repDate,'%Y%m%d')<='20220504')
or (DATE_FORMAT(repDate,'%Y%m%d')>='20220603'
and DATE_FORMAT(repDate,'%Y%m%d')<='20220605')
or (DATE_FORMAT(repDate,'%Y%m%d')>='20220910'
and DATE_FORMAT(repDate,'%Y%m%d')<='20220912')
or (DATE_FORMAT(repDate,'%Y%m%d')>='20221001'
and DATE_FORMAT(repDate,'%Y%m%d')<='20221007')
;
update year_date_all set   db_status=0
where  DATE_FORMAT(repDate,'%Y%m%d') in ('20220129','20220130','20220402','20220424','20220507','20221008','20221009')

MYSQL 生成周末、节假日,日期表相关推荐

  1. MySQL创建一张日期表

    转自:http://blog.csdn.net/guge907/article/details/27170953 有时候根据业务需求,我们需要获取一个包含全部时间的信息,比如在报表中要求按日期.周.月 ...

  2. 22.4.2_mysql自动生成日期表(按年份)

    1.应用场景 有时候,需要自动生成某一年的日期表(比如用于录入当年的法定节假日,或者其他需要生成一整年只含日期数据的空表,方便以后补充) 2.代码 例如:需要生成2008年的日期表 2.1. 前期准备 ...

  3. PowerBI中的函数日期表

    在PowerBI中,日期表的问题是始终都无法绕过的一个问题,首先是微软默认的日期表月份显示如下: 可能这种形式我们自己看起来没啥的,但是要考虑做出来的可视化报表呈现的对象绝对不仅仅是自己,那么就需要我 ...

  4. MYSQL 生成日期维度表

    这里写自定义目录标题 MYSQL 生成日期维度表 1.创建建维度表 2.生成维度数据函数 MYSQL 生成日期维度表 在报表统计中经常要用到日期维度进行汇总,所以需要提前生成通用的日期维度表. 1.创 ...

  5. mysql 日期列表_MySQL 生成日期表

    1.创建一个num表,用来存储数字0~9 CREATE TABLE num (i int); 2.在num表中生成0~9 INSERT INTO num (i) VALUES (0), (1), (2 ...

  6. 盘一盘 QuantLib 系列 2 - 生成日期表

    本篇是该系列的第二篇: 盘一盘 QuantLib 系列 1 - 日期和日历 上篇已经举例如何在日期 (old_date) 上加减一个期限得到一个新日期 (new_date),该日期没有经过调整可能是一 ...

  7. 2、用Kettle生成日期维度数据(一)使用kettle生成2019年日期文件保存到hive表中

    记录5月4号导入数据的过程,以后更方便使用这个方法 最终生成的ktr链接 链接:https://pan.baidu.com/s/1YJv7C7RIBawyzJD4j6DLMA 提取码:9de2 复制这 ...

  8. 找出非节假日与周末的日期

    比如有一个采购交期,要求不在假日交货. 我建了一个公司假日表,里面包含春节/国庆及公司规定的其他假期,但周末的日期没有输入在表里. 要求, 如果计算得出的交货日期在假期(含周末)里, 则交期提前到假期 ...

  9. PowerBI 应用时间智能(生成日期表)

    简介 Power BI Desktop -是一款由微软发布的自助式商业智能工具,功能强大.易于使用.其中还可以通过微软云连多个数据源并且使用数据源来创建可视化表盘. 但是几乎所有的BI都需要展示如何随 ...

  10. myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)

    myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) 参考文章: (1)myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) (2)https://www. ...

最新文章

  1. professor xi‘s story
  2. AtCoder Beginner Contest 204 F Hanjo 2
  3. ERP实施实记(六)之生管课
  4. vc++ 项目里External dependencies 的文件存放内容和各个文件的存放内容
  5. 最受欢迎中国技术博客? 我才狂写4周唉
  6. 编写react组件_s! 这就是为什么ReasonReact是编写React的最佳方法的原因
  7. 查询oracle数据库里面所有的表名
  8. Android 8.0(30)--- 应用快捷方式(ShortcutManager)的使用
  9. inflect java_关于Platinum库的MediaRender具体C++代码实现探讨
  10. RPi 2B Raspbian system install
  11. rabbitmq python 发送失败_RabbitMQ Python端发送消息给Java端 接受消息全数字问题
  12. 基于基因数据的神经网络模式分类研究
  13. 二维码 PDF417
  14. keil软件不显示.h文件问题
  15. 安装NVIDIA显卡驱动以及CUDA
  16. html登陆成功自动跳转,点击登录,登陆成功,自动跳转到起始页面,这要怎么做?...
  17. 原来java有这么多把锁,图解java中的17把锁
  18. 物联网卡应用在哪些方面
  19. 鞍点计算 C语言 SDUT
  20. 好莱坞十大导演排名及其代表作,你看过多少?

热门文章

  1. apache2部署访问yaaw
  2. 含有一个量词的命题的否命题_高一 | 数学必修一全称量词与存在量词知识点总结...
  3. python创建智能问答机器人
  4. 身体最佳排毒养生睡眠时间表
  5. n个不同对象聚类为k个类别有多少种可能性? 李航博士,统计学习方法2nd.公式14.21的修正.
  6. 《穷查理宝典》晨读笔记~投资的三条智慧
  7. 鼠标移上去变小手样式
  8. 如何远程访问办公室电脑(过年工作不打烊),亲测有效稳定
  9. wifi 频段表_wifi频段如何设置为5ghz
  10. 微信小程序如何更新云数据库