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

如何用SQL从employees表计算最年轻员工的年龄(以年为单位)

计算最年轻员工的年龄

针对你使用sysdate的场景(推测是Oracle数据库),可以用MONTHS_BETWEEN函数来准确计算年龄,它会自动处理"生日未到需减1岁"的情况,避免直接按年份相减的误差:

SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, MAX(Birthdate)) / 12) AS youngest_age
FROM employees;

其他常见数据库的写法

如果是其他数据库,也可以用对应内置函数实现准确计算:

  • MySQL/MariaDB:用TIMESTAMPDIFF直接返回准确年龄
    SELECT TIMESTAMPDIFF(YEAR, MAX(Birthdate), CURDATE()) AS youngest_age
    FROM employees;
    
  • SQL Server:需要判断生日是否已过,调整年份差
    SELECT 
        DATEDIFF(YEAR, MAX(Birthdate), GETDATE()) 
        - CASE 
            WHEN DATEADD(YEAR, DATEDIFF(YEAR, MAX(Birthdate), GETDATE()), MAX(Birthdate)) > GETDATE() 
            THEN 1 
            ELSE 0 
          END AS youngest_age
    FROM employees;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:10:30