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/"
相关推荐
霖霖总总4 小时前
[小技巧69]为什么总说MySQL单表“别超 2000 万行”?一篇讲透 InnoDB 存储极限
数据库·mysql
安科士andxe5 小时前
实操指南|安科士1.25G CWDM SFP光模块选型、部署与运维全攻略
运维·数据库·5g
Java爱好狂.5 小时前
RDB&AOF持久化原理解析
java·数据库·redis·后端开发·java编程·java程序员·java八股文
蓝胖子Lcl5 小时前
Mac安装Oracle数据库(M芯片)
数据库·macos·oracle
砚边数影5 小时前
从文档型数据库到企业级数据平台:一次架构演进的思考与实践
数据库·mongodb·架构·kingbase·数据库平替用金仓·金仓数据库
SQL必知必会6 小时前
SQL 删除重复行完全指南
数据库·sql
工业甲酰苯胺6 小时前
spring-事务管理
数据库·sql·spring
全栈前端老曹6 小时前
【Redis】Redis 持久化机制 RDB 与 AOF
前端·javascript·数据库·redis·缓存·node.js·全栈
李慕婉学姐6 小时前
Springboot平安超市商品管理系统6sytj3w6(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
Elastic 中国社区官方博客6 小时前
易捷问数(NewmindExAI)平台解决 ES 升级后 AI 助手与 Attack Discovery 不正常问题
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·ai