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/"
相关推荐
JavaOpsPro2 分钟前
上云后mysql默认wait_timeout导致应用层很多连接不可用
数据库·mysql
GEM的左耳返5 分钟前
互联网大厂Java求职面试题解析与实战指导:涵盖核心技术栈与业务场景
java·数据库·spring boot·安全·微服务·消息队列·面试题
越甲八千7 分钟前
ASGI和AWSIG区别
数据库·python·sqlite
数据库学啊10 分钟前
性价比高的车联网时序数据库供应商有哪些
数据库·时序数据库
laocooon52385788631 分钟前
C语言枚举知识详解与示例
java·c语言·数据库
哈哈哈笑什么34 分钟前
0代码写SQL!Spring AI保姆级教程:5分钟实现AI自然语言查数据,敏感查询自动拦截🚀
sql·spring·ai编程
yuxuan66991 小时前
【Docker】使用docker启动禅道出现mysql.sock 文件已经存在的bug
mysql·docker·centos·bug
honortech1 小时前
外部连接 redis-server 相关配置
数据库·redis·缓存
云计算小黄同学1 小时前
k8s中的服务通过secret访问数据库的实际案例
数据库·阿里云·kubernetes
不会写程序的未来程序员1 小时前
Redis 的内存回收机制详解
数据库·redis·缓存