几个平常用的mysql函数,MySql判断汉字、日期、数字的具体函数分享给大家,具体内容如下
1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
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-错误)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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-非纯数字)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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判断汉字、日期、数字的三段函数,希望对大家的学习有所帮助。