SQL方法创建
-- 查询时间段内的工作时间函数(剔除周末与非工作时间)
-- 参数解释
-- _st: 开始时间
-- _ed: 结束时间
-- _hour1: 工作时间开始小时
-- _hour2: 工作时间结束小时
-- _minute1: 工作时间开始分钟
-- _minute2: 工作时间结束分钟
-- 返回工作时间总分钟数
DELIMITER $$
CREATE FUNCTION `work_minute_sum`(_st DATETIME, _ed DATETIME, _hour1 INT, _hour2 INT, _minute1 INT, _minute2 INT) RETURNS int(11)
BEGIN
-- 每周有10080分钟
DECLARE _one_week_minute INT DEFAULT 10080;
-- 每天全勤工作分钟数
DECLARE _one_day_work_minute INT DEFAULT (_hour2 - _hour1) * 60 - _minute1 + _minute2;
-- 查询周期开始时间小时值
DECLARE _st_hour INT DEFAULT DATE_FORMAT(_st, '%H');
-- 查询周期结束时间小时值
DECLARE _ed_hour INT DEFAULT DATE_FORMAT(_ed, '%H');
-- 查询周期开始时间分钟值
DECLARE _st_minute INT DEFAULT DATE_FORMAT(_st, '%i');
-- 查询周期结束时间分钟值
DECLARE _ed_minute INT DEFAULT DATE_FORMAT(_ed, '%i');
-- 查询周期开始时间在周几
DECLARE _st_week INT DEFAULT DATE_FORMAT(_st, '%w');
-- 查询周期结束时间在周几
DECLARE _