mysql计算两个日期间的工作时长(参数传入每天上班时间,并剔除周末)

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 _
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值