You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL CASE表达式判断24小时内完成逻辑错误如何修正

错误原因

你原逻辑的判断条件要求「总小时数≤24 同时 分钟数≤0」,也就是说只有耗时刚好为整0分钟的24小时、或者更短的整小时0分钟的情况才会返回Y,像18:52、23:12这类有非0分钟的耗时都不满足条件,所以全部返回了N。

修正方案

判断逻辑改成计算总耗时的总分钟数,只要≤1440分钟(即24小时)就返回Y,否则返回N,两种适配Oracle(SQL Developer对应数据库)的写法可选:

写法1:在你原有逻辑基础上修改

SELECT 
    CASE 
        WHEN (extract(day FROM service_completed) * 24 * 60) + (extract(hour FROM service_completed) * 60) + extract(minute FROM service_completed) <= 1440
        THEN 'Y'
        ELSE 'N'
    END AS Completed_within_24HRS
FROM 你的表名;

写法2:更简洁的间隔比较写法

如果你的service_completed是INTERVAL类型的耗时,可直接和24小时间隔对比:

SELECT 
    CASE 
        WHEN service_completed <= INTERVAL '24' HOUR
        THEN 'Y'
        ELSE 'N'
    END AS Completed_within_24HRS
FROM 你的表名;

修正后你给出的测试数据返回结果如下,完全符合预期:

耗时Completed_within_24HRS
18:52Y
17:37Y
47:21N
20:29Y
45:31N
23:12Y
29:14N

内容的提问来源于stack exchange,提问作者BHW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:54:03