在数据库的运用过程中,我们时常会碰到根据身份证号码来获取当前的年龄,今天我在这里写了一个函数,就是关于获取年龄的 create or replace function FUNC_COMPARE_SFZHM( sfzhm in varchar2) --输入身份证号码 return number /* 函数说明,返回值0为小于18岁:值为1是大于75岁:其他情况是返回值为2 在这个函数里用到了trunc(months_between()) 然后就是将身份证号码里的年月日组合成'yyyy-mm-dd'
原表 sql语句: SELECT ) ' then '北京市' ' then '天津市' ' then '河北省' ' then '山西省' ' then '内蒙古自治区' ' then '辽宁省' ' then '吉林省' ' then '黑龙江省' ' then '上海市' ' then '江苏省' ' then '浙江省' ' then '安徽省' ' then '福建省' ' then '江西省' ' then '山东省' ' then '河南省' ' then '湖北省' ' then
), CONVERT(smalldatetime, SUBSTRING(b.IDCard, , )), ) AS BrithDate_Name, DATEDIFF(year, CONVERT(smalldatetime, SUBSTRING(ISNULL(b.IDCard, ), , )), GETDATE()) AS Age_Name, CASE LEFT(RIGHT(b.IDCard, ), ) % WHEN THEN '男' ELSE '女' END AS Sex_Name, b.IDCa