欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySql 判断汉字、日期、数字的函数

程序员文章站 2022-05-26 20:20:50
...

几个平常用的mysql函数 /***************************************************** 1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字 *****************************************************/ DROP FUNCTION IF EXISTS fc_is_hanzi; CREATE FUNCTION fc_is_h

  几个平常用的mysql函数

  /*****************************************************

  1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字

  *****************************************************/

  DROP FUNCTION IF EXISTS fc_is_hanzi;

  CREATE FUNCTION fc_is_hanzi(

  p_str VARCHAR(1024)

  )

  RETURNS int(11)

  NOT DETERMINISTIC

  SQL SECURITY DEFINER

  COMMENT '检查字符串是否为汉字'

  BEGIN

  /*检查字符串是否为汉字 返回值:1-汉字 0-非汉字*/

  DECLARE _ret, i, other_cnt, l_acode INT DEFAULT 0;

  SET _ret = 0;

  SET i = 1;

  SET other_cnt = 0;

  SET l_acode = 0;

  WHILE i

  SET l_acode = ASCII(SUBSTRING(p_str, i, 1));

  IF l_acode254 THEN

  SET other_cnt = other_cnt + 1;

  END IF;

  SET i = i + 1;

  END WHILE;

  IF other_cnt = 0 THEN

  SET _ret = 1;

  ELSE

  SET _ret = 0;

  END IF;

  RETURN _ret;

  END;

  /*****************************************************

  2.判断日期格式是否正确(返回值:1-正确 0-错误)

  *****************************************************/

  DROP FUNCTION IF EXISTS fc_ck_date;

  CREATE FUNCTION fc_ck_date(

  p_cont CHAR(32)

  )

  RETURNS tinyint(4)

  NOT DETERMINISTIC

  SQL SECURITY DEFINER

  COMMENT '判定日期格式是否正确'

  BEGIN

  /*判定日期格式是否正确(返回值:1-正确 0-错误)*/

  /*输入值格式为:yyyyMMdd 或 yyyy-MM-dd*/

  IF(SELECT DATE_FORMAT(p_cont,'%Y%m%d')) IS NULL THEN

  RETURN 0;

  ELSE

  RETURN 1;

  END IF;

  END;

  /*****************************************************

  3.判断字符串是否为纯数字(返回值:1-为纯数字 0-非纯数字)

  *****************************************************/

  DROP FUNCTION IF EXISTS fc_is_num;

  CREATE FUNCTION fc_is_num(

  p_string VARCHAR(32)

  )

  RETURNS int(4)

  NOT DETERMINISTIC

  SQL SECURITY DEFINER

  COMMENT '检查字符串是否为纯数字'

  BEGIN

  /*检查字符串是否为纯数字*/

  /*返回值:1-为纯数字 0-非纯数字*/

  DECLARE iResult INT DEFAULT 0;

  SELECT p_string REGEXP '^[0-9]*$' INTO iResult;

  IF iResult = 1 THEN

  RETURN 1;

  ELSE

  RETURN 0;

  END IF;

  END;