当前位置: 首页 > news >正文

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(任意两个时间 之间的工作小时)

写函数计算 任意两个时间 之间的工作小时 每天工作时间&#xff08;8:00 - 20:00 共12小时&#xff09;&#xff0c;没有休息日 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. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; 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

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 超级AI不会主宰人类&#xff0c;但人工智能必须开源&#xff01;LeCun最新采访引全网300万人围观 LeCun最新访谈视频中&#xff0c;再次坦露了自己对开源AI的看法。超级AI…...

面试就是这么简单,offer拿到手软(三)—— 常见中间件框架面试题,es,redis,dubbo,zookeeper kafka 等

面试就是这么简单&#xff0c;offer拿到手软&#xff08;一&#xff09;—— 常见非技术问题回答思路 面试就是这么简单&#xff0c;offer拿到手软&#xff08;二&#xff09;—— 常见65道非技术面试问题 面试就是这么简单&#xff0c;offer拿到手软&#xff08;三&#xff…...

【Spring系列】DeferredResult异步处理

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

使用晶振遇到的两个问题

并联电阻的问题 在一些方案中&#xff0c;晶振并联1MΩ电阻时&#xff0c;程序运行正常&#xff0c;而在没有1MΩ电阻的情况下&#xff0c;程序运行有滞后及无法运行现象发生。 原因分析&#xff1a; 在无源晶振应用方案中&#xff0c;两个外接电容能够微调晶振产生的时钟频率…...

手写promise A+、catch、finally、all、allsettled、any、race

目录 手写promise 同步版 1.Promise的构造方法接收一个executor()&#xff0c;在new Promise()时就立刻执行executor回调 2.executor()内部的异步任务被放入宏/微任务队列&#xff0c;等待执行 3.状态与结果的管理 状态只能变更一次 4.then()调用成功/失败回调 catch是…...

【原神游戏开发日志1】缘起

【原神游戏开发日志1】缘起 版权声明 本文为“优梦创客”原创文章&#xff0c;您可以自由转载&#xff0c;但必须加入完整的版权声明 文章内容不得删减、修改、演绎 相关学习资源见文末 大家好&#xff0c;最近看到原神在TGA上频频获奖&#xff0c;作为一个14年经验的游戏开…...

leetcode5 最长公共前缀三种python解法

14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a;strs ["flower","flow","flight"] 输出&#xff1a;"fl"示…...

对小程序的初了解

WXML和HTML的区别 标签名称不同 HTML&#xff1a;div、a、span、img WXML&#xff1a;view、text、image、navigator 属性节点不同 <a href"#">超链接</a> <navigator url"/pages/home/home"></navigator> 提供了类似vue的…...

QLineEdit 的 InputMask掩码

QLineEdit 的 InputMask掩码 A&#xff1a;只能输入字母&#xff0c;且不可省略 a&#xff1a;只能输入字母&#xff0c;可以省略 N&#xff1a;只能输入 字母和数字&#xff0c;且不可省略 n&#xff1a;只能输入 字母和数字&#xff0c;可以省略 X&#xff1a;可以输入任意字…...

关于队列的简单理解

1.队列(Queue) 1.1 关于队列 队列 &#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c; 队列具有先进先出 FIFO(First In First Out)的操作特性&#xff08;队列是个接口&#xff09;&#xff1b; 入队列&#x…...

加密市场进入牛初阶段?一场新的造富效应即将拉开帷幕!

周一(12月4日)&#xff0c;比特币一度上涨至42000美元&#xff0c;创下自2022年4月以来的最高水平。从目前比特币的走势来看&#xff0c;加密市场无疑已然进入到牛初阶段。 在牛市初期&#xff0c;确实存在人们不相信牛市到来的情况。由于在熊市中亏损的心理阻碍和对市场进一步…...

Superset基础入门

1 Superset概述 Apache Superset 是一个现代的数据探索和可视化平台。它功能强大且十分易用&#xff0c;可对接 各种数据源&#xff0c;包括很多现代的大数据分析引擎&#xff0c;拥有丰富的图表展示形式&#xff0c;并且支持自定义 仪表盘。 2 Superset安装 Superset 是由 P…...

【泛微ecology】将多个字段的数据合并到一个字段

doFieldSQL("select concat(concat(sqr,,),sy) as c from formtable_main_2 where requestid $requestid$ ")...

WebSocket入门介绍及编程实战

HTTP的限制 全双工和半双工&#xff1a; 全双工&#xff1a;全双工&#xff08;Full Duplex&#xff09;是允许数据在两个方向上同时传输。 半双工&#xff1a;半双工&#xff08;Half Duplex&#xff09;是允许数据在两个方向上传输&#xff0c;但是同一个时间段内只允许一个…...

vue3里面生命周期的使用

前言&#xff1a; vue2里面的生命周期和vue3生命周期是非常的相似的&#xff0c;我们通过访问生命周期钩子来处理不同场景之间的应用。 生命周期钩子的函数定义&#xff1a;每一个Vue组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如数据侦听&#xff0c;编译模…...

在python的Scikit-learn库中,可以使用train_test_split函数来划分训练集和测试集。

文章目录 一、在Scikit-learn库中&#xff0c;可以使用train_test_split函数来划分训练集和测试集总结 一、在Scikit-learn库中&#xff0c;可以使用train_test_split函数来划分训练集和测试集 在Scikit-learn库中&#xff0c;可以使用train_test_split函数来划分训练集和测试…...

外包干了2个月,技术明显退步了...

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近5年的功能测试&#xff0c;今年11月份&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…...

Agent 记忆架构演进:从简单的 Vector DB 到结构化知识图谱

Agent 记忆架构演进:从简单的 Vector DB 到结构化知识图谱 如果你曾开发过大模型 Agent,一定遇到过这样的痛点:你给 Agent 喂了几百条历史聊天记录、项目文档,问它「我上周和张三讨论的电商项目预算是多少?当时李四提了什么反对意见?」,它要么答非所问,要么只说对一半,…...

BallonsTranslator:3分钟搞定漫画翻译的终极AI辅助工具

BallonsTranslator&#xff1a;3分钟搞定漫画翻译的终极AI辅助工具 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地址: https…...

Obsidian数据迁移终极指南:如何将10+平台笔记一键导入知识库

Obsidian数据迁移终极指南&#xff1a;如何将10平台笔记一键导入知识库 【免费下载链接】obsidian-importer Obsidian Importer lets you import notes from other apps and file formats into your Obsidian vault. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i…...

多模态RAG实战:基于CLIP与向量数据库构建图文检索增强生成系统

1. 项目概述&#xff1a;从“Mureo”看多模态检索增强生成最近在折腾一个挺有意思的开源项目&#xff0c;叫“Mureo”。这个名字乍一看有点抽象&#xff0c;但如果你拆开来看&#xff0c;它其实融合了“Multimodal”&#xff08;多模态&#xff09;和“Neural”&#xff08;神经…...

掌握6个采购管控节点,企业采购成本可直接降低15%—30%

在企业经营管理中&#xff0c;采购成本是企业综合成本的核心组成部分&#xff0c;原材料、耗材、设备、服务等采购支出&#xff0c;直接决定企业利润空间。据行业数据统计&#xff0c;多数中小企业采购环节存在流程漏洞、管控松散、资源浪费等问题&#xff0c;无效成本占比高达…...

AMD Ryzen调试工具终极指南:6步掌握硬件性能精准调控

AMD Ryzen调试工具终极指南&#xff1a;6步掌握硬件性能精准调控 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://git…...

Windows下用Python调用CDS API下载ERA5数据,报错Missing/incomplete configuration?手把手教你创建.cdsapirc配置文件

Windows下Python调用CDS API下载ERA5数据报错排查指南&#xff1a;从配置文件创建到隐藏文件陷阱全解析 当你在Windows系统上首次尝试使用Python调用CDS API下载ERA5气象数据时&#xff0c;可能会遇到一个令人困惑的报错&#xff1a;"Missing/incomplete configuration f…...

VCF 9.1 实验室部署 ESX 配置变通方案

以下配置适用于资源受限环境、非生产用途&#xff0c;仅用于功能测试与学习目的。一、物理 ESX 9.1 主机1. vSAN 压缩算法&#xff08;CPU 受限环境&#xff09;VCF 9.1 默认从 LZ4 改为 Zstd&#xff0c;压缩率更高但 CPU 占用更高。切回 LZ4&#xff08;无需重启&#xff09;…...

2026企业数字化必看:实在Agent订单数据处理智能助理实战及ERP自动录入教程

进入2026年&#xff0c;全球企业级自动化市场已完成从“流程驱动”向“智能体&#xff08;Agent&#xff09;驱动”的范式转移。根据Gartner与IDC在2025年底发布的联合报告显示&#xff0c;超过85%的500强企业已在其核心业务流程中部署了具备自主决策能力的数字员工。在这一背景…...

Acton性能调优终极指南:10个提升TON智能合约开发效率的技巧 [特殊字符]

Acton性能调优终极指南&#xff1a;10个提升TON智能合约开发效率的技巧 &#x1f680; 【免费下载链接】acton Toolchain for TON smart contract development and beyond 项目地址: https://gitcode.com/GitHub_Trending/acto/acton Acton是TON区块链上强大的智能合约开…...