需求: 生成考勤日历表

CREATE TABLE `year_date_all` (

`id` int primary key AUTO_INCREMENT COMMENT 'id',

`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:调休工作日',

`repWeeks` varchar(50) NOT NULL COMMENT '星期(*)'

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='全年日期表';

# 创建存储过程

CREATE DEFINER=`root`@`%` 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;

DECLARE repWeeks varchar(50) DEFAULT '星期一';

# 判断数据是否存在

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;

#判断是星期几

set repWeeks = (case workOrWeek when 7 then '星期日' when 1 then '星期一' when 2 then '星期二' when 3 then '星期三' when 4 then '星期四' when 5 then '星期五' when 6 then '星期六' end);

# 写入数据

INSERT INTO year_date_all(id,repDate,repYear,repMonth,repDay,repWeek,db_status,repWeeks) VALUES(null,startDay,YEAR(startDay),MONTH(startDay),DAY(startDay),WEEKOFYEAR(startDay),db_status_,repWeeks);

SET count=count+1;

SET startDay=DATE_ADD(DATE(startDay),INTERVAL 1 DAY);

END WHILE;

END IF;

END

# 执行存储过程

call getAllYearDateFunc(2020)

# 删除存储过程

DROP PROCEDURE getAllYearDateFunc

java考勤表导出_Sql通过存储过程生成全年日历考勤表数据相关推荐

  1. Sql通过存储过程生成全年日历考勤表数据

    #2020云栖大会#阿里云海量offer来啦!投简历.赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> 需求: 生成考勤日历表 CREATE TABLE `year_date_ ...

  2. 数据库创建(利用写好的数据库表生成创建表的sql语句+利用生成的数据库创建表加同步数据sql)

    一.利用写好的数据库表生成创建表的sql语句 1.简单创建一个数据库,并建一个表,并编辑数据. a.建库 b.建表 c.编辑表,保存时输入表名 d.刷新一下,出来了 e.转存导出sql文件. 二.利用 ...

  3. sql server表分区_SQL Server 2016增强功能– SQL截断表和表分区

    sql server表分区 The idea behind this article is to discuss the importance and the implication of SQL P ...

  4. java poi 数据透视,java 利用poi导出默认以表格展示的excel透视表

    前言: 从前,我是一个前端程序猿,怀着对打通任(前)督(后)二(开)脉(发)的梦想转了后端,自学两礼拜java+spring全家桶,直接上项目实战.最近接到一需求:将业务数据导出一张透视表. 需求开发 ...

  5. java的json导出excel_利用json生成excel表格

    起因: 之前利用反射生成excel导出,这个组件本来挺好用的,结果,坑爹的本地研发没有问题,生产环境却有问题.不知道什么原因直接导致服务重启,还重新加载类,直接导致jvm的永久区内存溢出. 异常: j ...

  6. mysql的建库建表语句_SQL语句(建库、建表、修改语句)

    1 create databasesql_test2 go 3 --打开数据库 sql_test 4 usesql_test5 go 6 7 --建立学生表 8 create table学生9 (学生 ...

  7. mysql数据库创建交叉表查询_sql – 我需要知道如何创建交叉表查询

    这种类型的转换称为枢轴.您没有指定您正在使用的数据库,因此我将为SQL Server和MySQL提供答案. SQL Server:如果您使用的是SQL Server 2005,则可以实现PIVOT功能 ...

  8. 没有form的表单验证_PHP动态生成表单,内置17种常用组件并且支持表单验证!

    FormBuilder 是一个开源的PHP表单生成器,可以快速生成现代化的form表单.还可以配合开源项目 xaboy/form-create 生成任何 Vue 组件 github | 文档 环境需求 ...

  9. Mysql导出函数、存储过程

    下面是导出存储过程的代码 1 # mysqldump -u 数据库用户名 -p -n -t -d -R 数据库名 > 文件名 其中,-d 表示--no-create-db, -n表示--no-d ...

  10. php表单生成器实验报告,PHP表单生成器,快速生成现代化的form表单,快速上手

    form-builder PHP表单生成器,快速生成现代化的form表单.包含复选框.单选框.输入框.下拉选择框等元素以及省市区三级联动.时间选择.日期选择.颜色选择.树型.文件/图片上传等功能. 本 ...

最新文章

  1. 结合不同的模型进行集成学习
  2. Java程序员必看!2021最新爱奇艺Java社招面试题目
  3. 【webservice】Java JAX-WS和JAX-RS webservice
  4. 孩子,你今天有没有提出一个好的问题?
  5. play 拦截器_编写Play 2的模块,第2部分:拦截器
  6. linux-pcap 抓包程序框架
  7. Springboot Failed to parse configuration class [x]; nested exception
  8. 【Qt教程】2.4 - Qt5 控件 - QListWidget列表框
  9. jquery新版本旧版本之间的坑
  10. 4556: [Tjoi2016Heoi2016]字符串
  11. python keras_用Python/Keras/Flask/Docker在Kubernetes上部署深度学习模型
  12. 通俗易懂的讲解梯度,散度,旋度(有图很好理解)!!!
  13. MYSQL之数据库高级SQL语句详细操作步骤详情介绍
  14. uni-app 获取手机类型
  15. 洛谷 P2672 推销员 解题报告
  16. jboss mysql cluster_jboss之mod_cluster集群
  17. 模拟电路设计(23)---模数和数模转换器概述
  18. android短信接收处理和发送
  19. Spring Security使用数据库登录认证授权
  20. 小程序云开发支持公众号网页开发了

热门文章

  1. 北大沙龙 | 技术大咖为大家讲解什么是UTXO
  2. RSA加密中PEM、DER的编解码问题
  3. 总结--linux常用配置文件总结
  4. 自删除技术小记:Gary Nebbett
  5. dw怎么保存html格式,教你如何用Dreamweaver制作网页以及保存网页的方法--系统之家...
  6. 如何给网站添加CNZZ站长统计功能代码的常用办法
  7. 基于cesium和mars3d海洋三维管线信息系统开发完工总结
  8. mysql 时间 本周 本月_MySQL日期查询:本周、本月、本季、本年
  9. codeforces 56E 多米诺骨牌效应
  10. Linux-1-概述