由于业务需求,需要重新建一张表用来统计每日在职人数及入离职情况,需要根据已存在的记录生成日统计记录。
需要通过日期生成记录,只想统计最近几个月的记录所以使用存储过程(本方法产生的日在职记录在职人数是不准确的,仅在建表之后使用一次产生足够的测试数据)。
使用到的函数:
日期格式化:DATE_FORMAT(date,format)
获取间隔日期:DATE_SUB(NOW(),INTERVAL initNum DAY) ---获取initNum天前的数据
生成主键id:MD5(UUID())
#`nums`代表执行存储过程需传入int类型的形参
CREATE DEFINER=`root`@`localhost` PROCEDURE `createRecord`(IN `nums` int)
BEGIN
#Routine body goes here...
declare initNum int default 0;
DECLARE currentDay char(13);
WHILE initNum<=nums DO
SET initNum = initNum +1;
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL initNum DAY),'%Y-%m-%d') INTO currentDay;
INSERT INTO s_emprecorddaily_t(ID,DEPARTID,QUIT_COUNT,ENTRY_COUNT,REGISTER_COUNT