zoukankan      html  css  js  c++  java
  • SQL 根据身份证号码获取年龄的函数

    在数据库的运用过程中,我们时常会碰到根据身份证号码来获取当前的年龄,今天我在这里写了一个函数,就是关于获取年龄的

    create or replace function FUNC_COMPARE_SFZHM( sfzhm in varchar2) --输入身份证号码
      return number
      /*
      函数说明,返回值0为小于18岁;值为1是大于75岁;其他情况是返回值为2
      在这个函数里用到了trunc(months_between()) 
      然后就是将身份证号码里的年月日组合成'yyyy-mm-dd'格式,但是在SQL里拼接用的是"||",而不是"+",这个值得注意
      */
    is
    
    begin
        if Trunc(MONTHS_BETWEEN(to_date(to_char(sysdate, 'yyyy-MM-dd'),'yyyy-MM-dd'),to_date(substr(sfzhm,7,4)||'-'||substr(sfzhm,11,2)||'-'||substr(sfzhm,13,2), 'yyyy-MM-dd')) / 12) < 18  then
          return 0;  
        elsif  Trunc(MONTHS_BETWEEN(to_date(to_char(sysdate, 'yyyy-MM-dd'),'yyyy-MM-dd'),to_date(substr(sfzhm,7,4)||'-'||substr(sfzhm,11,2)||'-'||substr(sfzhm,13,2), 'yyyy-MM-dd')) / 12) >75 then
        return 1;
        else
          return 2;
        end if;
    end;

    下面是函数调用的SQL语句:

    select func_compare_sfzhm('310103200003141234') from dual;
  • 相关阅读:
    去逛了一下浙东大峡谷
    终于开始释然
    其实在天堂AS IT IN HEAVEN
    寝室全景照
    黑与白
    努力下的意外
    文曲星的存在意义
    强烈推荐文章,给那些头脑发晕的看看
    学友演唱会
    最喜欢的歌
  • 原文地址:https://www.cnblogs.com/suyun0702/p/8566278.html
Copyright © 2011-2022 走看看