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

MySQL查询员工入职周年时如何正确处理年/月单复数别名

SQL员工工龄字段单复数格式修正方案

通过CASE WHEN条件判断匹配单复数单位后拼接即可,匹配规则如下:

  • 年数计算结果为1时,单位使用Year,为0或大于1时使用Years
  • 扣除整年后的剩余月数计算结果为1时,单位使用month,为0或大于1时使用months

修正后完整SQL

SELECT
  emp_no, 
  join_date,
  join_date + INTERVAL (EXTRACT(YEAR FROM CURDATE()) - EXTRACT(YEAR FROM join_date)) YEAR AS anniversary_date_this_year,
  CONCAT(
    TIMESTAMPDIFF(YEAR, join_date, CURDATE()),
    ' ',
    CASE WHEN TIMESTAMPDIFF(YEAR, join_date, CURDATE()) = 1 THEN 'Year' ELSE 'Years' END,
    ' ',
    TIMESTAMPDIFF(MONTH, join_date, CURDATE()) % 12,
    ' ',
    CASE WHEN TIMESTAMPDIFF(MONTH, join_date, CURDATE()) % 12 = 1 THEN 'month' ELSE 'months' END
  ) AS FinalYear
FROM emp_detail;

常见场景输出参考

  • 入职满1年整:1 Year 0 months
  • 入职满1年1个月:1 Year 1 month
  • 入职3个月(不满1年):0 Years 3 months
  • 入职满5年整:5 Years 0 months

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:06:18