我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle函数获取IDCARD中年龄

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle函数获取IDCARD中年龄

   IDCARD的第一代是15位号码,第二代是18位号码,

   新的18位IDCARD号码各位的含义:1-2位省、自治区、直辖市代码 

                                3-4位地级市、盟、自治州代码  

                                5-6位县、县级市、区代码  

                                7-14位出生年月日,比如19670401代表1967年4月1日

                                15-17位为顺序号,其中17位男为单数,女为双数  

                                18位为校验码,0-9和X,由公式随机产生。

     15位IDCARD号码各位的含义: 1-2位省、自治区、直辖市代码;  

                               3-4位地级市、盟、自治州代码;  

                               5-6位县、县级市、区代码;   

                               7-12位出生年月日,比如670401代表1967年4月1日,这是和18位号码的第一个区别;  

                               13-15位为顺序号,其中15位男为单数,女为双数

                               与18位***号的第二个区别:没有最后一位的验证码

从IDCARD中获取用户年龄信息,要对IDCARD合法性进行校验。


--判断是否为数字,返回True,False
CREATE OR REPLACE FUNCTION DT_ISNUMBER(P_IN VARCHAR2) RETURN BOOLEAN AS
  I NUMBER ;
BEGIN
  I := TO_NUMBER(P_IN);
  RETURN TRUE;
EXCEPTION
  WHEN OTHERS THEN
    RETURN FALSE;
END;

--判断是否为日期,返回True,False
CREATE OR REPLACE FUNCTION DT_ISDATE(P_IN VARCHAR2) RETURN BOOLEAN AS
  I DATE;
BEGIN
  I := TO_DATE(P_IN,'YYYYMMDD');
  RETURN TRUE;
EXCEPTION
  WHEN OTHERS THEN
    RETURN FALSE;
END;


--判断是否为合法的***号
CREATE OR REPLACE FUNCTION DT_ISIDCARD(P_IDCARD VARCHAR2) RETURN BOOLEAN IS
  IDCARDLEN INTEGER;
BEGIN
  IDCARDLEN := LENGTH(P_IDCARD);
  IF (IDCARDLEN = 18 AND DT_ISNUMBER(SUBSTR(P_IDCARD, 1, IDCARDLEN - 1)) AND
     DT_ISDATE(SUBSTR(P_IDCARD, 7, 8)) ) OR
     (IDCARDLEN = 15 AND DT_ISNUMBER(SUBSTR(P_IDCARD, 1, IDCARDLEN)) AND
     DT_ISDATE('19' || SUBSTR(P_IDCARD, 7, 6)) ) THEN
    RETURN TRUE;  
  ELSE
    RETURN FALSE;
  END IF;
END DT_ISIDCARD;


--获取***号信息的年龄并返回
CREATE OR REPLACE FUNCTION DT_GETAGE(P_IDCARD VARCHAR2) RETURN INTEGER IS
IDCARDLEN INTEGER;
IDCARDYEAR INTEGER;
BEGIN 
  IDCARDLEN :=LENGTH(P_IDCARD);  
   IF DT_ISIDCARD(P_IDCARD) AND IDCARDLEN = 18 THEN
     IDCARDYEAR := TO_NUMBER(SUBSTR(P_IDCARD,7,4));  
  END IF;
  IF DT_ISIDCARD(P_IDCARD) AND IDCARDLEN = 15 THEN  
     IDCARDYEAR := TO_NUMBER('19'||SUBSTR(P_IDCARD,7,2));
  END IF;
  RETURN  TO_NUMBER(TO_CHAR(SYSDATE,'YYYY'))-IDCARDYEAR;       
END DT_GETAGE;


 以上针对***年龄获取常用函数做个记录,方便日后直接使用或者对***中其他地址、性别做进一步解析使用

(PS:为啥shenfenzheng这三个字要当做敏感信息被过滤掉了呢)

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle函数获取IDCARD中年龄

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle日期,获取年月日等函数、日期函数、时区

月 select extract(month from sysdate) from dual; 日 select extract(day from sysdate) from dual; 格式化日期: TO_CHAR(SYSDATE(),"YY/MM/DD H
oracle日期,获取年月日等函数、日期函数、时区
2017-01-06

大数据开发中文年龄函数的示例代码

这篇文章主要介绍大数据开发中文年龄函数的示例代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!create or replace function CHINESEAGE(BirthDate in date, NowD
2023-06-05

PHP中的array_values()函数获取数组中的值

PHP中的array_values()函数获取数组中的值在PHP中,数组是一个十分常用且重要的数据类型。在实际开发过程中,我们经常需要操作数组中的值。其中,array_values()函数是一个非常有用的函数,它可以用于获取数组中的所有值并
PHP中的array_values()函数获取数组中的值
2023-11-18

为什么我不能获取 golang 中函数的地址,但可以获取函数值

php小编子墨为您解答:为什么我不能获取 golang 中函数的地址,但可以获取函数值?在Golang中,函数值是可以被获取的,因为函数值是一种可以被调用的类型。而函数的地址则是不可获取的,这是由Golang的设计决策所决定的。Golang
为什么我不能获取 golang 中函数的地址,但可以获取函数值
2024-02-10

sql中获取当前日期函数是

sql 中获取当前日期的函数是 current_date(),它返回当前系统日期,格式为 yyyy-mm-dd。此外,还有 current_timestamp、now 和 getdate 函数可用于获取日期和时间戳。SQL 中获取当前日期的
sql中获取当前日期函数是
2024-05-15

如何在 Golang 中获取函数的类型?

在 golang 中,我们可以使用 reflect.typeof() 函数获取函数类型:获取函数类型:fntype := reflect.typeof(add)打印函数类型:fmt.println("函数类型:", fntype)获取函数名
如何在 Golang 中获取函数的类型?
2024-04-20

oracle中substr函数截取字符串

在Oracle中,可以使用SUBSTR函数来截取字符串。SUBSTR函数的语法如下:SUBSTR(字符串, 开始位置, 长度)其中,字符串表示要截取的原始字符串,开始位置表示从原始字符串的哪个位置开始截取,长度表示要截取的子字符串的长度
oracle中substr函数截取字符串
2024-04-09

oracle中截取字符串的函数

oracle 提供了两个字符串截取函数:substr():从指定位置开始截取指定长度的字符。substring():从指定位置开始截取剩余的字符,或从指定位置开始截取指定长度的字符。Oracle 中的字符串截取函数oracle中为了方便大
oracle中截取字符串的函数
2024-05-03

oracle怎么获取字符串中的数字

在Oracle中,您可以使用REGEXP_REPLACE函数来提取字符串中的数字。以下是一个示例:SELECT REGEXP_REPLACE('abc123def456', '[^0-9]', &#
oracle怎么获取字符串中的数字
2024-04-09

使用PHP中的array_keys()函数获取数组中的键名

使用PHP中的array_keys()函数获取数组中的键名array_keys()函数是PHP中一个非常实用的函数,它能够返回给定数组中所有的键名。在PHP中,数组是一种非常常用的数据结构,它可以存储多个值,并通过键名来访问这些值。有时候,
使用PHP中的array_keys()函数获取数组中的键名
2023-11-18

php中用于获取用户输入的函数

php 提供多种获取用户输入的函数:1. $_get:从 url 查询字符串获取数据;2. $_post:从 http 请求主体获取数据;3. $_request:合并 $_get 和 $_post,处理各种 http 请求;4. read
php中用于获取用户输入的函数
2024-04-27

怎么在Golang中获取当前函数名称

这篇文章将为大家详细讲解有关怎么在Golang中获取当前函数名称,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是golanggolang 是Google开发的一种静态强类型、编译型、并发
2023-06-15

Oracle中extract获取不到数据怎么解决

在 Oracle 中,如果使用 EXTRACT 函数无法获取到数据,可以按照以下步骤进行排查和解决:确保查询的表中包含要提取的数据。可以使用 SELECT 语句检查表中是否包含数据。确保查询的条件正确。EXTRACT 函数需要指定提取的部分
Oracle中extract获取不到数据怎么解决
2024-04-09

编程热搜

目录