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/"
相关推荐
小丁努力不焦虑14 小时前
mysql八股文
数据库·mysql
rannn_11114 小时前
【SQL题解】力扣高频 SQL 50题|DAY2+3
数据库·后端·sql·leetcode
l1t14 小时前
DeepSeek对Oracle 数据库新特性 SQL 宏的总结
数据库·人工智能·sql·oracle
是垚不是土14 小时前
MySQL8.0数据库GTID主从同步方案
android·网络·数据库·安全·adb
cnxy18814 小时前
MySQL地理空间数据完整使用指南
android·数据库·mysql
鲸说MySQL14 小时前
【MySQL事务(一)事务的操作流程】
数据库·mysql
程序边界14 小时前
10年Oracle运维转战国产数据库:迁移路上的“坑”与“光”
运维·数据库·oracle
一个天蝎座 白勺 程序猿14 小时前
Apache IoTDB(12):深度解析时序数据聚合的GROUP BY与HAVING子句
数据库·sql·apache·iotdb
abap帅哥14 小时前
SAP MIRO/MIR4付款条件消失 :设计逻辑、根本原因与终极解决方案
数据库·后端·sap·abap·erp
不穿格子的程序员14 小时前
Redis篇9——Redis深度剖析:
数据库·redis·多线程·事务回滚·ap·cp