幾個平常用的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;
以上就是MySql判斷漢字、日期、數字的三段函數,希望對大家的學習有所幫助。