Oracle中可以使用TO_CHAR函数来格式化日期,也可以使用EXTRACT函数来提取日期中的年份、月份、日期信息。
下面是一个例子,假设现在的日期是2022年12月16日,想要计算出生日期为2000年1月1日的人的年龄:
SELECT TO_CHAR(EXTRACT(YEAR FROM SYSDATE) - EXTRACT(YEAR FROM TO_DATE('2000-01-01', 'YYYY-MM-DD'))
|| '岁'
|| EXTRACT(MONTH FROM SYSDATE) - EXTRACT(MONTH FROM TO_DATE('2000-01-01', 'YYYY-MM-DD'))
|| '月'
|| EXTRACT(DAY FROM SYSDATE) - EXTRACT(DAY FROM TO_DATE('2000-01-01', 'YYYY-MM-DD'))
|| '天'
) AS age
FROM dual;
执行上面的语句后,会得到输出结果:22岁11月15天
注意:上面的例子是基于当前日期计算年龄的,如果想要计算某一个指定日期之后的年龄,则需要把系统日期替换成指定的日期。