跳转至

用户自定义函数扩展(udfe)

用户自定义函数扩展(udfe)

udfe 扩展主要是为了在 SeaboxSQL 中支持以下用户自定义函数。

func_todate
func_tonumber
func_tel_legal
func_checkidcard
check_idcard
sfz15_18
get_rkbh
sfz_sex
try_datetime
is_date

func_todate

函数 返回类型 描述
func_todate(varchar) timestamp 判断是否为日期,符合则返回日期,不符合返回空

示例:

create extension udfe;
select func_todate('9999');
 func_todate 
-------------
 
(1 row)

set datestyle to postgres;
select func_todate('00010101000001');
       func_todate        
--------------------------
 Mon Jan 01 00:00:01 0001
(1 row)

func_tonumber

函数 返回类型 描述
func_tonumber(varchar) numeric 判断是否为数字,符合则返回数字,不符合返回空

示例:

create extension udfe;
select func_tonumber('a');
 func_tonumber 
---------------
              
(1 row)

select func_tonumber('1');
 func_tonumber 
---------------
             1
(1 row)
函数 返回类型 描述
func_tel_legal(varchar) numeric 判断电话号码是否合法,合法则返回1,不符合返回0

示例:

create extension udfe;
select func_tel_legal('1896306616');
 func_tel_legal 
----------------
              0
(1 row)

select func_tel_legal('18963066160');
 func_tel_legal 
----------------
              1
(1 row)

func_checkidcard

函数 返回类型 描述
func_checkidcard(varchar) int 判断是否为身份证号,符合则返回1,不符合返回0

示例:

create extension udfe;
select func_checkidcard('AAAAAAAAAAAAAAAAAA');
 func_checkidcard 
------------------
                0
(1 row)

select func_checkidcard('153742198302165411');
 func_checkidcard 
------------------
                1
(1 row)

check_idcard

函数 返回类型 描述
check_idcard(varchar) varchar 校验身份证合规性,符合则返回1,不符合返回0

示例:

create extension udfe;
select check_idcard('AAAAAAAAAAAAAAAAAA');
 check_idcard 
--------------
 0
(1 row)

select check_idcard('153742198302165411');
 check_idcard 
--------------
 1
(1 row)

sfz15_18

函数 返回类型 描述
sfz15_18(varchar) varchar 15位身份证号转18位

示例:

create extension udfe;
select sfz15_18('153742830216541');
      sfz15_18      
--------------------
 153742198302165411
(1 row)

get_rkbh

函数 返回类型 描述
get_rkbh(varchar, varchar) varchar 生成人口编号

示例:

create extension udfe;
select get_rkbh('101', '153742198302165411');
             get_rkbh             
----------------------------------
 bce05f52b02ff5c551a6397edde1e809
(1 row)

sfz_sex

函数 返回类型 描述
sfz_sex(varchar) varchar 从18位身份证号码的第17位判断性别,返回性别 1男 2女 0未知

示例:

create extension udfe;
select sfz_sex('153742198302165411');
 sfz_sex 
---------
 1
(1 row)

try_datetime

函数 返回类型 描述
try_datetime(varchar, varchar) bool 检测是否可转时间

示例:

create extension udfe;
select try_datetime('19830216', 'yyyymmdd');
 try_datetime 
--------------
 t
(1 row)

is_date

函数 返回类型 描述
is_date(varchar) bool 检测是否可转日期

示例:

create extension udfe;
select is_date('19830216');
 is_date 
---------
 t
(1 row)