java考勤表导出_Sql通过存储过程生成全年日历考勤表数据
需求: 生成考勤日历表
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通过存储过程生成全年日历考勤表数据相关推荐
- Sql通过存储过程生成全年日历考勤表数据
#2020云栖大会#阿里云海量offer来啦!投简历.赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> 需求: 生成考勤日历表 CREATE TABLE `year_date_ ...
- 数据库创建(利用写好的数据库表生成创建表的sql语句+利用生成的数据库创建表加同步数据sql)
一.利用写好的数据库表生成创建表的sql语句 1.简单创建一个数据库,并建一个表,并编辑数据. a.建库 b.建表 c.编辑表,保存时输入表名 d.刷新一下,出来了 e.转存导出sql文件. 二.利用 ...
- sql server表分区_SQL Server 2016增强功能– SQL截断表和表分区
sql server表分区 The idea behind this article is to discuss the importance and the implication of SQL P ...
- java poi 数据透视,java 利用poi导出默认以表格展示的excel透视表
前言: 从前,我是一个前端程序猿,怀着对打通任(前)督(后)二(开)脉(发)的梦想转了后端,自学两礼拜java+spring全家桶,直接上项目实战.最近接到一需求:将业务数据导出一张透视表. 需求开发 ...
- java的json导出excel_利用json生成excel表格
起因: 之前利用反射生成excel导出,这个组件本来挺好用的,结果,坑爹的本地研发没有问题,生产环境却有问题.不知道什么原因直接导致服务重启,还重新加载类,直接导致jvm的永久区内存溢出. 异常: j ...
- mysql的建库建表语句_SQL语句(建库、建表、修改语句)
1 create databasesql_test2 go 3 --打开数据库 sql_test 4 usesql_test5 go 6 7 --建立学生表 8 create table学生9 (学生 ...
- mysql数据库创建交叉表查询_sql – 我需要知道如何创建交叉表查询
这种类型的转换称为枢轴.您没有指定您正在使用的数据库,因此我将为SQL Server和MySQL提供答案. SQL Server:如果您使用的是SQL Server 2005,则可以实现PIVOT功能 ...
- 没有form的表单验证_PHP动态生成表单,内置17种常用组件并且支持表单验证!
FormBuilder 是一个开源的PHP表单生成器,可以快速生成现代化的form表单.还可以配合开源项目 xaboy/form-create 生成任何 Vue 组件 github | 文档 环境需求 ...
- Mysql导出函数、存储过程
下面是导出存储过程的代码 1 # mysqldump -u 数据库用户名 -p -n -t -d -R 数据库名 > 文件名 其中,-d 表示--no-create-db, -n表示--no-d ...
- php表单生成器实验报告,PHP表单生成器,快速生成现代化的form表单,快速上手
form-builder PHP表单生成器,快速生成现代化的form表单.包含复选框.单选框.输入框.下拉选择框等元素以及省市区三级联动.时间选择.日期选择.颜色选择.树型.文件/图片上传等功能. 本 ...
最新文章
- 结合不同的模型进行集成学习
- Java程序员必看!2021最新爱奇艺Java社招面试题目
- 【webservice】Java JAX-WS和JAX-RS webservice
- 孩子,你今天有没有提出一个好的问题?
- play 拦截器_编写Play 2的模块,第2部分:拦截器
- linux-pcap 抓包程序框架
- Springboot Failed to parse configuration class [x]; nested exception
- 【Qt教程】2.4 - Qt5 控件 - QListWidget列表框
- jquery新版本旧版本之间的坑
- 4556: [Tjoi2016Heoi2016]字符串
- python keras_用Python/Keras/Flask/Docker在Kubernetes上部署深度学习模型
- 通俗易懂的讲解梯度,散度,旋度(有图很好理解)!!!
- MYSQL之数据库高级SQL语句详细操作步骤详情介绍
- uni-app 获取手机类型
- 洛谷 P2672 推销员 解题报告
- jboss mysql cluster_jboss之mod_cluster集群
- 模拟电路设计(23)---模数和数模转换器概述
- android短信接收处理和发送
- Spring Security使用数据库登录认证授权
- 小程序云开发支持公众号网页开发了
热门文章
- 北大沙龙 | 技术大咖为大家讲解什么是UTXO
- RSA加密中PEM、DER的编解码问题
- 总结--linux常用配置文件总结
- 自删除技术小记:Gary Nebbett
- dw怎么保存html格式,教你如何用Dreamweaver制作网页以及保存网页的方法--系统之家...
- 如何给网站添加CNZZ站长统计功能代码的常用办法
- 基于cesium和mars3d海洋三维管线信息系统开发完工总结
- mysql 时间 本周 本月_MySQL日期查询:本周、本月、本季、本年
- codeforces 56E 多米诺骨牌效应
- Linux-1-概述