当前位置: 首页 > 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;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…...

OpenClaw+Qwen3-VL:30B:低成本搭建飞书多模态机器人

OpenClawQwen3-VL:30B&#xff1a;低成本搭建飞书多模态机器人 1. 为什么选择本地部署多模态助手&#xff1f; 去年我在团队内部尝试用商业API搭建了一个飞书机器人&#xff0c;用于处理日常的图片识别和文档分析需求。三个月后收到账单时&#xff0c;发现仅图片识别这一项功…...

模型微调加速:OpenClaw对接nanobot的LoRA训练

模型微调加速&#xff1a;OpenClaw对接nanobot的LoRA训练 1. 为什么选择OpenClawnanobot进行模型微调 去年我在尝试用Qwen3-4B模型处理专业领域任务时&#xff0c;发现直接使用基础模型的效果总差强人意。模型要么对专业术语理解不到位&#xff0c;要么生成的回答缺乏领域特性…...

探索ArtPlayer:如何通过轻量高效的HTML5视频引擎实现全场景适配播放体验

探索ArtPlayer&#xff1a;如何通过轻量高效的HTML5视频引擎实现全场景适配播放体验 【免费下载链接】ArtPlayer :art: ArtPlayer.js is a modern and full featured HTML5 video player 项目地址: https://gitcode.com/gh_mirrors/ar/ArtPlayer 在数字内容爆发的时代&a…...

VSCode调试ARM芯片:一份给硬件工程师的OpenOCD与J-Link配置清单

VSCode调试ARM芯片&#xff1a;一份给硬件工程师的OpenOCD与J-Link配置清单 当硬件工程师第一次将ARM Cortex-M开发板连接到电脑时&#xff0c;最令人沮丧的莫过于看着闪烁的LED却无法窥探芯片内部的运行状态。调试器就像硬件工程师的"听诊器"&#xff0c;而VSCode配…...

别再手动测PLC了!用C# + Modbus Poll/Slave + VSPD三件套,5分钟搞定ModbusRTU通信仿真

工业自动化开发者的效率革命&#xff1a;C#与Modbus仿真工具链实战指南 在工业自动化领域&#xff0c;时间就是金钱。传统PLC调试过程中&#xff0c;工程师常常需要反复连接真实硬件设备&#xff0c;忍受着物理线路故障、设备资源占用和不可复现的测试环境等问题。这种低效的工…...

破局与重构:基于“智慧大脑”的企业全面数据化经营深度解构(PPT)

“在数字时代&#xff0c;企业最大的风险不是数据的匮乏&#xff0c;而是决策依然依赖经验直觉而非数据驱动。” —— 这份《数字化建设企业经营解决方案》文档&#xff0c;不仅是一份技术蓝图&#xff0c;更是对传统企业经营管理模式的一次彻底颠覆。它描绘了一个从“人治”迈…...

Shawl:Windows服务化的技术桥梁

Shawl&#xff1a;Windows服务化的技术桥梁 【免费下载链接】shawl Windows service wrapper for arbitrary commands 项目地址: https://gitcode.com/gh_mirrors/sh/shawl 问题引入&#xff1a;程序后台运行的困境 在Windows环境中&#xff0c;让应用程序脱离终端独立…...

GitLab实战:如何用rebase -i优雅合并多个commit(附常见错误排查)

Git提交历史优化&#xff1a;交互式rebase高阶操作指南 1. 为什么需要整理Git提交历史 在团队协作开发中&#xff0c;我们经常会遇到提交历史杂乱无章的情况。想象一下这样的场景&#xff1a;你完成了一个新功能的开发&#xff0c;但在这个过程中产生了十几个零散的提交记录&am…...

Swin Transformer生产部署与性能调优:从环境适配到架构优化的全周期解决方案

Swin Transformer生产部署与性能调优&#xff1a;从环境适配到架构优化的全周期解决方案 【免费下载链接】Swin-Transformer This is an official implementation for "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows". 项目地址: http…...

OpenClaw智能邮件处理:Qwen3-32B镜像自动分类与优先级标记

OpenClaw智能邮件处理&#xff1a;Qwen3-32B镜像自动分类与优先级标记 1. 为什么需要自动化邮件处理 每天打开邮箱看到堆积如山的未读邮件&#xff0c;这种焦虑感我深有体会。作为技术团队的负责人&#xff0c;我的邮箱常年保持200未读状态——直到上个月用OpenClawQwen3-32B…...