oracle 年龄计算 岁 月 天

SELECT
    trunc (months / 12) || '' || trunc (MOD(months, 12)) || '' || trunc (
        sysdate - add_months (birth, trunc(months))
    ) || '' age
FROM
    (
        SELECT
            months_between (sysdate, birth) months,
            birth
        FROM
            (
                SELECT
                    date '2016-1-1' birth
                FROM
                    DUAL
            )
    );

单独计算年龄的月数:

SELECT
    floor(
        MONTHS_BETWEEN (
            TRUNC (SYSDATE, 'MONTH'),
            TRUNC (birthday, 'MONTH')
        ) / 12
    ) AS age
FROM
    DUAL

单独计算年龄的年数:

SELECT
    floor(
        MONTHS_BETWEEN (sysdate, date '2000-1-1') / 12
    )
FROM
    DUAL
posted @ 2018-05-30 20:10  bug_hua  阅读(4464)  评论(0编辑  收藏  举报