Oracle快速公式:求将员工输入时长四舍五入至1/4小时的计算公式
Oracle快速公式:将时长四舍五入至最接近的1/4小时
根据你给定的转换规则,可以通过CASE条件判断结合基础数学函数实现精准转换,以下是具体的计算公式和说明:
核心公式
假设你已获取到员工输入的时长数值(记为INPUT_HOURS,例如3.42),最终转换后的结果公式如下:
FLOOR(INPUT_HOURS) + CASE WHEN MOD(INPUT_HOURS * 60, 60) < 15 THEN 0 WHEN MOD(INPUT_HOURS * 60, 60) <= 22 THEN 0.25 WHEN MOD(INPUT_HOURS * 60, 60) <= 37 THEN 0.5 WHEN MOD(INPUT_HOURS * 60, 60) <= 52 THEN 0.75 ELSE 1 END
公式拆解说明
- 提取整数小时部分:
FLOOR(INPUT_HOURS)取时长的整数部分,比如3.42小时的整数部分是3。 - 计算剩余分钟数:
MOD(INPUT_HOURS * 60, 60)将时长转换为总分钟数后,取模60得到剩余分钟数(3.42*60≈25.2分钟)。 - 按规则匹配小数部分:
- 剩余分钟<15 → 加0小时
- 15≤剩余分钟≤22 → 加0.25小时
- 23≤剩余分钟≤37 → 加0.5小时
- 38≤剩余分钟≤52 → 加0.75小时
- 剩余分钟≥53 → 加1小时(相当于整数小时部分+1)
示例验证
- 输入时长3.25小时(3小时15分钟):剩余分钟15,匹配0.25,结果为3+0.25=3.25小时
- 输入时长3.42小时(≈3小时25分钟):剩余分钟25,匹配0.5,结果为3+0.5=3.5小时
- 输入时长1.88小时(≈1小时53分钟):剩余分钟53,匹配1,结果为1+1=2小时
内容的提问来源于stack exchange,提问作者SSA_Tech124
相关产品推荐
相关产品推荐

