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

MySQL技术问询:计算车辆维护里程的整除次数及余数

MySQL计算车辆维护次数与剩余里程的实现方案

没问题,这个需求在MySQL里用基础的算术运算符和函数就能轻松搞定,我给你一步步拆解实现逻辑:

核心计算思路

你的需求本质是两个基础数学运算:

  • 已完成的维护次数:总里程 整除 维护周期
  • 距离下次维护的剩余里程:总里程 取模 维护周期(或总里程减去「次数×周期」)

具体SQL实现

假设你的车辆数据表结构如下(可根据实际字段名调整):

CREATE TABLE vehicles (
    id INT PRIMARY KEY AUTO_INCREMENT,
    vehicle_name VARCHAR(50) NOT NULL,
    total_km INT NOT NULL, -- 总里程(单位:公里)
    total_miles DECIMAL(10,1) NOT NULL -- 总里程(单位:英里)
);

完整查询语句

SELECT
    vehicle_name,
    -- 公里维度的维护计算
    total_km,
    total_km DIV 20000 AS completed_km_maintenances, -- 已完成的公里维护次数
    total_km MOD 20000 AS remaining_km, -- 距离下次维护的剩余公里数
    -- 英里维度的维护计算
    total_miles,
    FLOOR(total_miles / 12000) AS completed_miles_maintenances, -- 已完成的英里维护次数
    ROUND(total_miles - (FLOOR(total_miles / 12000) * 12000), 1) AS remaining_miles, -- 剩余英里数(保留1位小数)
    -- 自定义维护提醒(可调整阈值,比如剩余1000公里/621英里以内触发提醒)
    CASE
        WHEN remaining_km < 1000 THEN '⚠️ 需要尽快维护'
        ELSE '✅ 无需立即维护'
    END AS km_maintenance_status,
    CASE
        WHEN remaining_miles < 621 THEN '⚠️ 需要尽快维护'
        ELSE '✅ 无需立即维护'
    END AS miles_maintenance_status
FROM vehicles;

关键语法解释

  • DIV:MySQL专属的整数除法运算符,直接返回商的整数部分,完美适配整数类型的公里数计算(比如198255 DIV 20000 = 9)。
  • MOD:取模运算符,返回除法后的余数,也就是剩余里程(比如198255 MOD 20000 = 18255)。
  • FLOOR():向下取整函数,因为英里数通常是小数,用它能准确得到整数的维护次数(比如123189.9 / 12000 ≈10.2658,FLOOR后得到10)。
  • ROUND():可选函数,用于对剩余英里数保留指定小数位,让结果更整洁。

验证你的示例

对于车辆A的198255KM/123189.9Miles,执行上述SQL后会得到:

  • 公里维护次数:9次,剩余里程:18255KM
  • 英里维护次数:10次,剩余里程:3189.9Miles
    完全匹配你给出的预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:52:17