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/"
相关推荐
为思念酝酿的痛43 分钟前
MySQL数据类型
数据库·mysql
smilejingwei1 小时前
时间列转行再转置为新交叉表
sql·sqlazy·ai写sql·可信sql
泡海椒2 小时前
JQuick-SQL 与关系型数据库集成:应用层读取后注册查询
数据库·sql
Carol06302 小时前
上肢及肩肘关节
java·服务器·数据库
程序员塔塔喵2 小时前
【MySQL篇|第二篇】慢SQL及其优化手段
sql·mysql·慢sql优化
鸽芷咕2 小时前
数据孤岛怎么拆?金仓KFS数据集成软件从原理到落地
数据库
一世繁华行2 小时前
CAPL浏览器(翻译自官方文档)
运维·服务器·数据库
得助智能-垂类大模型2 小时前
多Agent平台哪家做得好?2026年企业级多智能体平台选型指南
大数据·数据库
为思念酝酿的痛3 小时前
MySQL数据库基础
数据库·mysql
瀚高PG实验室3 小时前
数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法
数据库·postgresql·瀚高数据库