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/"
相关推荐
倔强的石头_5 分钟前
性能飙升!KingbaseES V9R2C13 Windows安装与优化特性深度实测
数据库
梦里不知身是客115 分钟前
Doris 中主键模型的读时合并模式
数据库·sql·linq
GanGuaGua11 分钟前
MySQL:复合查询
数据库·mysql·oracle
gugugu.11 分钟前
MySQL事务深度解析:从ACID到MVCC的实现原理
数据库·mysql·oracle
DechinPhy16 分钟前
使用Python免费合并PDF文件
开发语言·数据库·python·mysql·pdf
共享家952716 分钟前
MySQL-基础查询(下)
android·mysql
驾数者18 分钟前
Flink SQL自定义函数开发:标量、聚合、表值函数实现
python·sql·flink
苹果醋321 分钟前
JAVA设计模式之策略模式
java·运维·spring boot·mysql·nginx
杨了个杨898238 分钟前
PostgreSQL 完全备份与还原
数据库·postgresql
爱吃KFC的大肥羊39 分钟前
Redis持久化详解(一):RDB快照机制深度解析
数据库·redis·缓存