oracle FUNCTION(任意两个时间 之间的工作小时)
写函数计算 任意两个时间 之间的工作小时
每天工作时间(8:00 - 20:00 共12小时),没有休息日
CREATE OR REPLACE FUNCTION SC_YD_DESI.CALCULATE_WORK_HOURS_FUNC (p_current_time IN DATE,p_order_time IN DATE
) RETURN NUMBER
ASp_work_hours NUMBER := 0;p_work_time DATE := p_order_time;v_hours NUMBER := 0;
BEGIN-- 计算第一天的工作时间IF TRUNC(p_current_time) >= TRUNC(p_work_time) THENIF TO_NUMBER(TO_CHAR(p_current_time, 'HH24')) >= 8 AND TO_NUMBER(TO_CHAR(p_current_time, 'HH24')) < 20 THENv_hours := (p_current_time - p_work_time) * 24 ;ELSIF TO_NUMBER(TO_CHAR(p_current_time, 'HH24')) >= 20 THENv_hours := 20 - (TO_NUMBER(TO_CHAR(p_work_time, 'HH24')) + TO_NUMBER(TO_CHAR(p_work_time, 'MI')/60)); -- 20:00到次日08:00共计12小时END IF;p_work_hours := p_work_hours + v_hours ;p_work_time := p_work_time + 1;END IF;-- 计算中间整天的工作时间WHILE TRUNC(p_work_time) < TRUNC(p_current_time) LOOPp_work_hours := p_work_hours + 12;p_work_time := p_work_time + 1;END LOOP;-- 计算最后一天的工作时间IF TRUNC(p_work_time) = TRUNC(p_current_time) THENIF TO_NUMBER(TO_CHAR(p_current_time, 'HH24')) >= 8 AND TO_NUMBER(TO_CHAR(p_current_time, 'HH24')) < 20 THENv_hours := (p_current_time - (TRUNC(SYSDATE) + INTERVAL '8' HOUR)) * 24 ;ELSIF TO_NUMBER(TO_CHAR(p_current_time, 'HH24')) >= 20 THENv_hours := 12; END IF;p_work_hours := p_work_hours + v_hours ;p_work_time := p_work_time + 1;END IF;RETURN p_work_hours;
END CALCULATE_WORK_HOURS_FUNC;
调用函数结果:
SELECT SC_YD_DESI.CALCULATE_WORK_HOURS_FUNC(TO_DATE('2022-11-10 23:00:00', 'YYYY-MM-DD HH24:MI:SS'),TO_DATE('2022-11-07 10:50:00', 'YYYY-MM-DD HH24:MI:SS')
) AS work_hours
FROM DUAL;

相关文章:
oracle FUNCTION(任意两个时间 之间的工作小时)
写函数计算 任意两个时间 之间的工作小时 每天工作时间(8:00 - 20:00 共12小时),没有休息日 CREATE OR REPLACE FUNCTION SC_YD_DESI.CALCULATE_WORK_HOURS_FUNC (p_current_time IN DATE,p_order_time IN DATE ) RETURN NUMBER ASp_work_hou…...
【“C++ 精妙之道:解锁模板奇谭与STL精粹之门“】
【本节目标】 1. 泛型编程 2. 函数模板 3. 类模板 4. 什么是STL 5. STL的版本 6. STL的六大组件 7. STL的重要性 8. 如何学习STL 9.STL的缺陷 1. 泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) {int temp left;lef…...
el-date-picker时间控制范围为过去时间不可选
<el-date-picker :picker-options"startPickerOptions()" value-format"yyyy-MM-dd HH:mm:ss" v-model"form.applyFixPlan" type"datetime" placeholder"选择日期时间"> </el-date-picker> 在method中定义star…...
音视频技术开发周刊 | 322
每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 超级AI不会主宰人类,但人工智能必须开源!LeCun最新采访引全网300万人围观 LeCun最新访谈视频中,再次坦露了自己对开源AI的看法。超级AI…...
面试就是这么简单,offer拿到手软(三)—— 常见中间件框架面试题,es,redis,dubbo,zookeeper kafka 等
面试就是这么简单,offer拿到手软(一)—— 常见非技术问题回答思路 面试就是这么简单,offer拿到手软(二)—— 常见65道非技术面试问题 面试就是这么简单,offer拿到手软(三ÿ…...
【Spring系列】DeferredResult异步处理
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
使用晶振遇到的两个问题
并联电阻的问题 在一些方案中,晶振并联1MΩ电阻时,程序运行正常,而在没有1MΩ电阻的情况下,程序运行有滞后及无法运行现象发生。 原因分析: 在无源晶振应用方案中,两个外接电容能够微调晶振产生的时钟频率…...
手写promise A+、catch、finally、all、allsettled、any、race
目录 手写promise 同步版 1.Promise的构造方法接收一个executor(),在new Promise()时就立刻执行executor回调 2.executor()内部的异步任务被放入宏/微任务队列,等待执行 3.状态与结果的管理 状态只能变更一次 4.then()调用成功/失败回调 catch是…...
【原神游戏开发日志1】缘起
【原神游戏开发日志1】缘起 版权声明 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明 文章内容不得删减、修改、演绎 相关学习资源见文末 大家好,最近看到原神在TGA上频频获奖,作为一个14年经验的游戏开…...
leetcode5 最长公共前缀三种python解法
14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flower","flow","flight"] 输出:"fl"示…...
对小程序的初了解
WXML和HTML的区别 标签名称不同 HTML:div、a、span、img WXML:view、text、image、navigator 属性节点不同 <a href"#">超链接</a> <navigator url"/pages/home/home"></navigator> 提供了类似vue的…...
QLineEdit 的 InputMask掩码
QLineEdit 的 InputMask掩码 A:只能输入字母,且不可省略 a:只能输入字母,可以省略 N:只能输入 字母和数字,且不可省略 n:只能输入 字母和数字,可以省略 X:可以输入任意字…...
关于队列的简单理解
1.队列(Queue) 1.1 关于队列 队列 :只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表, 队列具有先进先出 FIFO(First In First Out)的操作特性(队列是个接口); 入队列&#x…...
加密市场进入牛初阶段?一场新的造富效应即将拉开帷幕!
周一(12月4日),比特币一度上涨至42000美元,创下自2022年4月以来的最高水平。从目前比特币的走势来看,加密市场无疑已然进入到牛初阶段。 在牛市初期,确实存在人们不相信牛市到来的情况。由于在熊市中亏损的心理阻碍和对市场进一步…...
Superset基础入门
1 Superset概述 Apache Superset 是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接 各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义 仪表盘。 2 Superset安装 Superset 是由 P…...
【泛微ecology】将多个字段的数据合并到一个字段
doFieldSQL("select concat(concat(sqr,,),sy) as c from formtable_main_2 where requestid $requestid$ ")...
WebSocket入门介绍及编程实战
HTTP的限制 全双工和半双工: 全双工:全双工(Full Duplex)是允许数据在两个方向上同时传输。 半双工:半双工(Half Duplex)是允许数据在两个方向上传输,但是同一个时间段内只允许一个…...
vue3里面生命周期的使用
前言: vue2里面的生命周期和vue3生命周期是非常的相似的,我们通过访问生命周期钩子来处理不同场景之间的应用。 生命周期钩子的函数定义:每一个Vue组件实例在创建时都需要经历一系列的初始化步骤,比如数据侦听,编译模…...
在python的Scikit-learn库中,可以使用train_test_split函数来划分训练集和测试集。
文章目录 一、在Scikit-learn库中,可以使用train_test_split函数来划分训练集和测试集总结 一、在Scikit-learn库中,可以使用train_test_split函数来划分训练集和测试集 在Scikit-learn库中,可以使用train_test_split函数来划分训练集和测试…...
外包干了2个月,技术明显退步了...
先说一下自己的情况,大专生,19年通过校招进入广州某软件公司,干了接近5年的功能测试,今年11月份,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…...
linux-系统函数
Linux 系统函数详解 Linux 系统函数是用户程序与内核交互的底层接口,通过系统调用(syscall)实现。以下是核心分类及典型函数: 1. 文件操作函数 #include <fcntl.h> int open(const char *pathname, int flags, mode_t mode)…...
Python实战:高效破解RAR加密文件的自动化脚本设计
1. 为什么需要RAR密码破解脚本 在日常工作中,我们经常会遇到这样的尴尬情况:一个重要的RAR压缩文件,明明是自己设置的密码,却怎么也想不起来了。这时候,一个能够自动尝试各种密码组合的Python脚本就能派上大用场。 RAR…...
EfficientViT语义分割深度解析:从Cityscapes到实时应用
EfficientViT语义分割深度解析:从Cityscapes到实时应用 【免费下载链接】efficientvit EfficientViT is a new family of vision models for efficient high-resolution vision. 项目地址: https://gitcode.com/gh_mirrors/ef/efficientvit EfficientViT语义…...
ASP.NET Core 认证鉴权实战:JWT、Policy 与权限边界怎么落地
实现场:一个后台退款接口原本只允许财务角色调用,但线上排查发现,普通运营账号只要拿到有效 token,也能调用成功。根因并不复杂:接口加了 [Authorize]系统只校验“是否登录”没有继续校验角色、权限和资源归属结果就是…...
AI开源项目贡献指南:测试工程师从PR提交到核心维护者的专业路径
测试工程师在AI开源生态中的独特价值在AI开源项目的演进中,软件测试从业者具备不可替代的专业优势:质量敏感度:精准识别模型漂移、接口兼容性、数据异常等AI特有风险系统化思维:构建覆盖数据流水线、模型服务、API交互的端到端验证…...
Fortran模块编译避坑指南:为什么你的.mod文件总是找不到?
Fortran模块编译避坑指南:为什么你的.mod文件总是找不到? 当你第一次尝试在Fortran项目中使用模块(module)时,很可能会遇到那个令人困惑的错误信息:"Cant open module file xxx.mod for reading"。这个看似简单的问题背…...
WaveTools鸣潮工具箱:深度技术解析与高级配置指南
WaveTools鸣潮工具箱:深度技术解析与高级配置指南 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 对于追求极致游戏体验的《鸣潮》玩家而言,WaveTools不仅仅是一个简单的辅助工具&a…...
Midscene.js视觉驱动自动化:从认知到实践的AI跨平台控制指南
Midscene.js视觉驱动自动化:从认知到实践的AI跨平台控制指南 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 一、认知篇:理解Midscene.js的技术革新 1.1 破解传统自动…...
Bypass Paywalls Clean:突破内容壁垒的智能解决方案
Bypass Paywalls Clean:突破内容壁垒的智能解决方案 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的今天,你是否曾因学术论文被付费墙阻挡而错失研…...
5步搭建DeepSeek-OCR服务:从部署到调用完整教程
5步搭建DeepSeek-OCR服务:从部署到调用完整教程 1. 引言:为什么选择DeepSeek-OCR 1.1 OCR技术的实际应用场景 在日常工作和生活中,我们经常遇到需要从图片中提取文字的场景。比如: 扫描的合同或发票需要转为可编辑文本手机拍摄…...
