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/"
相关推荐
言之。7 分钟前
DDIA第四章 数据库存储引擎面试问题集
数据库·面试·职场和发展·ddia
wangbing112510 分钟前
redis的存储问题
数据库·redis·缓存
剑来.13 分钟前
一次完整的 MySQL 性能问题排查思路(线上实战总结)
数据库·mysql·oracle
2301_8002561114 分钟前
【数据库】查找距离最近的电影院 pgSQL 存储过程片段
大数据·数据库·excel
2501_9418072618 分钟前
在迪拜智能机场场景中构建行李实时调度与高并发航班数据分析平台的工程设计实践经验分享
java·前端·数据库
week_泽22 分钟前
小程序云数据库查询操作_2
数据库·小程序
一 乐22 分钟前
餐厅点餐|基于springboot + vue餐厅点餐系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
白帽子黑客杰哥32 分钟前
除了SQL注入,WAF绕过技术如何应用于XSS、文件上传等其他漏洞类型?
网络·sql·xss·漏洞挖掘
小王和八蛋35 分钟前
TDDL、Amoeba、Cobar、MyCAT 架构比较
数据库
jnrjian36 分钟前
Oracle 列A=列A 相当于列不为空,条件无意义
数据库·sql