sql 计算工作日数

一、创建表

CREATE TABLE non_working_days (

`date` date NOT NULL

)

2023-01-25

2023-04-02

2023-04-22

2023-08-20

2023-09-29

二、函数

复制代码
CREATE FUNCTION calculate_workday(start_time DATE, end_time DATE)
    RETURNS INT
BEGIN
    DECLARE day_diff INT;

    SELECT   DATEDIFF(end_date, start_date) + 1 - COUNT(non_working_days.date) into day_diff
    FROM  non_working_days
              CROSS JOIN
          (SELECT start_time AS start_date,end_time AS end_date) AS date_range
    WHERE  non_working_days.date BETWEEN start_date AND end_date;

    RETURN day_diff;
END

三 测试

复制代码
-- 测试
SELECT calculate_workday('2024-02-20 12:12:01', '2024-02-29')

四、 第三方获取假期接口

复制代码
"https://timor.tech/api/holiday/year/"
相关推荐
深蓝轨迹17 小时前
Redis 消息队列
java·数据库·redis·缓存·面试·秒杀
曹牧17 小时前
Oracle:分批查询
数据库·oracle
祭曦念17 小时前
MySQL基础运维:mysqldump全量备份与恢复实操 | 新手可直接落地的备份指南
运维·数据库·mysql
于樱花森上飞舞17 小时前
【Redis】初识Redis
数据库·redis·缓存
羊小猪~~17 小时前
【QT】-- QMainWindow简介
开发语言·数据库·c++·后端·qt·前端框架·求职招聘
codkingo17 小时前
Skill:Agent 的可插拔能力单元
数据库·oracle
Boop_wu17 小时前
[MyBatis] MyBatis 快速入门(1)
数据库·oracle
l1t17 小时前
QWen 3.5plus总结的总结基准测试结果的正确方法
前端·数据库
额12917 小时前
CentOS 7 安装apache部署discuz导入数据库表
数据库·centos·apache
大阿明18 小时前
Spring.factories
java·数据库·spring