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

如何将数据库TotalMonths列数值转换为年/月组合的时长格式?

解决方案:将TotalMonths转换为易读的时长格式

没问题,我来帮你搞定这个转换需求!针对你的Duration表,我们可以用SQL的算术运算和条件判断来生成符合要求的易读时长格式,直接上可执行的查询语句:

SELECT 
    TotalMonths AS "Months",
    CONCAT(
        CASE 
            WHEN FLOOR(TotalMonths / 12) > 1 THEN CONCAT(FLOOR(TotalMonths / 12), ' Years ')
            WHEN FLOOR(TotalMonths / 12) = 1 THEN CONCAT(FLOOR(TotalMonths / 12), ' Year ')
            ELSE ''
        END,
        CASE 
            WHEN TotalMonths % 12 > 1 THEN CONCAT(TotalMonths % 12, ' Months')
            WHEN TotalMonths % 12 = 1 THEN CONCAT(TotalMonths % 12, ' Month')
            WHEN FLOOR(TotalMonths / 12) = 0 THEN CONCAT(TotalMonths, ' Months')
            ELSE ''
        END
    ) AS "Duration"
FROM Duration;

逻辑拆解:

  • 计算年和月:用FLOOR(TotalMonths / 12)得到完整的年数,TotalMonths % 12得到剩余的月数
  • 处理年数的单复数:年数大于1时显示X Years,等于1时显示1 Year,没有年数则留空
  • 处理月数的单复数与边界情况:
    • 剩余月数大于1时显示X Months,等于1时显示1 Month
    • 如果总月数不足12(没有年数),直接显示X Months
    • 如果有完整年数且无剩余月数,月数部分留空
  • 拼接结果:用CONCAT把年数部分和月数部分组合成最终的时长字符串

执行这个查询后,你的数据会输出成你想要的格式:

Months Duration
24 2 Years
18 1 Year 6 Months
7 7 Months

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:05:50