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

MySQL中基于dd/mm/yyyy格式DOB结合GETDATE()计算年龄的方法

解决方案

前提说明

你提到的GETDATE()是SQL Server的内置取当前时间函数,以下解法默认基于SQL Server环境,其他数据库的适配方案会额外说明。

核心逻辑

  1. 字符串转日期:使用CONVERT函数,指定格式码103适配dd/mm/yyyy的日期字符串格式
  2. 周岁计算:先取两个日期的年份差,再判断当年生日是否已过,未过则年份差减1,避免虚岁误差

完整查询语句

SELECT 
    ID,
    Name,
    -- 计算周岁逻辑
    DATEDIFF(YEAR, CONVERT(DATE, DOB, 103), GETDATE()) 
    - CASE 
        WHEN DATEADD(YEAR, DATEDIFF(YEAR, CONVERT(DATE, DOB, 103), GETDATE()), CONVERT(DATE, DOB, 103)) > GETDATE() 
        THEN 1 
        ELSE 0 
    END AS AGE,
    DOB
FROM 替换为你的实际表名;

其他数据库适配(可选)

如果是MySQL环境,可以使用自带的周岁计算函数简化逻辑:

SELECT 
    ID,
    Name,
    TIMESTAMPDIFF(YEAR, STR_TO_DATE(DOB, '%d/%m/%Y'), CURDATE()) AS AGE,
    DOB
FROM 替换为你的实际表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:30:01