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/"
相关推荐
灯澜忆梦28 分钟前
【MySQL10】进阶篇 | 索引_#1
数据库·sql·mysql
敲上瘾32 分钟前
redis常用数据类型与操作方法
数据结构·数据库·redis·缓存
OceanWaves19931 小时前
mysql 5.7.29 主从同步配置
数据库·mysql·adb
molaoye1 小时前
win10下切换MySQL版本
数据库·mysql
丁引1 小时前
《数据清洗的艺术:如何用20行核心逻辑优雅地删除无标签图片》
前端·数据库·python
雨辰AI1 小时前
K8s 数据库 Secret 加密实战|密码明文漏洞彻底修复,等保密评双合规(金仓 / 达梦双库适配)
数据库·容器·kubernetes
c238562 小时前
MySQL 基础用法(下):查询进阶与核心特性
android·c语言·c++·mysql
XR1234567882 小时前
学校图书馆网络改造,方案谁更优?
网络·数据库·php
梦想的旅途22 小时前
企业微信自动化:自动发送文本、图片、文件
前端·数据库·microsoft
IvorySQL2 小时前
PostgreSQL 日报|复制槽泄漏修复(8 月 6 日)
数据库·postgresql