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

Excel条件公式=IF(AD4<AE4,AE4-AD4,0)转换为PHP/MySQL代码咨询

MySQL查询正确写法

MySQL在SELECT语句中做分支判断直接使用内置IF()函数即可,语法为IF(判断条件, 条件成立返回值, 条件不成立返回值),不需要额外写else关键字。如果你的Time Elapsed(已耗时时长)和Speed Fault(设定时长)为TIME/DATETIME类型,需要转换为秒计算后再转回时间格式,符合你要求的hh:mm:ss输出:

SELECT 
    *,
    IF(
        TIME_TO_SEC(`Time Elapsed`) < TIME_TO_SEC(`Speed Fault`),
        SEC_TO_TIME(TIME_TO_SEC(`Speed Fault`) - TIME_TO_SEC(`Time Elapsed`)),
        '00:00:00'
    ) AS `Under Time`
FROM time_db;

PHP实现代码

如果需要在PHP层完成计算,可直接对时间字符串做秒级转换后判断计算:

<?php
/**
 * 计算时长差值,返回hh:mm:ss格式结果
 * @param string $timeElapsed 已耗时时长,格式hh:mm:ss
 * @param string $speedFault 设定时长,格式hh:mm:ss
 * @return string
 */
function calculateUnderTime(string $timeElapsed, string $speedFault): string
{
    // 转换为0点以来的秒数
    $elapsedSeconds = strtotime($timeElapsed) - strtotime('00:00:00');
    $faultSeconds = strtotime($speedFault) - strtotime('00:00:00');
    
    if ($elapsedSeconds < $faultSeconds) {
        return gmdate('H:i:s', $faultSeconds - $elapsedSeconds);
    }
    return '00:00:00';
}

// 调用示例
// 输出 00:02:30
echo calculateUnderTime('00:12:30', '00:15:00');
// 输出 00:00:00
echo calculateUnderTime('00:16:00', '00:15:00');
?>

如果时间差值可能超过24小时,需自行对差值秒数做天级拆分格式化即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 16:57:03