oracle 根据身份证号码与指定日期计算年龄

自定义函数:

sql 复制代码
CREATE OR REPLACE FUNCTION 获取年龄(身份证号 varchar2, 指定时间 date)
RETURN varchar2
AS
年龄 varchar2(16);
BEGIN
  if length(身份证号) >=18 then
    SELECT TRUNC(    MONTHS_BETWEEN(指定时间,     TO_DATE(SUBSTR(身份证号, 7, 8), 'YYYYMMDD')    )   / 12) || '岁' into 年龄 FROM DUAL;
    if 年龄 ='0岁' then
      SELECT TRUNC(MONTHS_BETWEEN(指定时间, TO_DATE(SUBSTR(身份证号, 7, 8), 'YYYYMMDD'))) || '个月' into 年龄 FROM DUAL;
      if 年龄 ='0个月' then
         SELECT (TRUNC(指定时间) - TO_DATE(SUBSTR(身份证号, 7, 8), 'YYYYMMDD')) || '天'  into 年龄 FROM DUAL;
         if 年龄 ='0天' then
            SELECT '1天'  into 年龄 FROM DUAL;
         end if;
      end if;
    end if;
  end if;
   RETURN 年龄;

END;

测试结果:

相关推荐
倔强的石头_6 分钟前
Oracle 迁移 TCO 深度拆解:从隐性运维成本陷阱到全栈工具链破局
数据库
2501_9249526913 分钟前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
2401_8914821715 分钟前
Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
jvm·数据库·python
Predestination王瀞潞16 分钟前
6.3.1 软件->W3C XPath 1.0 标准(W3C Recommendation):XPath(XML Path Language)查询语言
xml·数据库·oracle
2401_8512729916 分钟前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
快乐柠檬不快乐22 分钟前
Java连接电科金仓数据库(KingbaseES)实战指南
java·开发语言·数据库
AllData公司负责人33 分钟前
AllData数据中台通过集成DolphinScheduler+Seatunnel实现SAP HANA数据库同步到Doris数据仓库
数据库·数据仓库·sap hana
2401_8463416533 分钟前
使用Python进行网络设备自动配置
jvm·数据库·python
执笔画情ora1 小时前
Postgresql管理-杀会话还是取消会话?
数据库·oracle
清风徐来QCQ1 小时前
redis 面试可能会问的问题
数据库·redis·面试