萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySql 判斷漢字、日期、數字的函數

MySql 判斷漢字、日期、數字的函數

   幾個平常用的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 <= CHAR_LENGTH(p_str) DO

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

  IF l_acode<124 or l_acode>254 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;

copyright © 萬盛學電腦網 all rights reserved