判断字符串是否为有效数值,日期。


sqlserver自带的函数

isnumeric():

isdate()


mysql没有自带的函数,需要人为写函数实现。

有效数值:


DROP FUNCTION IF EXISTS fc_ck_date; 


delimiter $$


CREATE FUNCTION fc_ck_date( 

p_cont CHAR(32) 

RETURNS tinyint(4) 

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


$$ delimiter  ;


-- 判断字符串是否为有效日期


DROP FUNCTION IF EXISTS fc_is_num; 


CREATE FUNCTION fc_is_num( 

p_string VARCHAR(32) 

RETURNS int(4) 

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

BEGIN 

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;


参考链接:

http://www.veryhuo.com/a/view/11905.html