Posteado por: alejandrolaorden | 30 julio, 2015

FUNCION QUE VALIDA HORAS EN MYSQL

DROP FUNCTION IF EXISTS FNC_CHK_HORA_VALIDA;
DELIMITER $$
CREATE FUNCTION FNC_CHK_HORA_VALIDA ( pHora varchar(5) ) RETURNS BOOLEAN
BEGIN
 DECLARE ppresul boolean;
 DECLARE len INT UNSIGNED;
 DECLARE iHora int unsigned;
 DECLARE iMinutos int unsigned;
 DECLARE sHora varchar(2);
 DECLARE sMinutos varchar(2);
 SET @MAXMINUTES = 59;
 SET @MAXHOURS = 23;
 SET @MAXTIMEDIGITLENGTH = 2;
 SET @TIMESEPARATOR = ':';
 SET len = LENGTH(pHora);
 IF (len = (@MAXTIMEDIGITLENGTH*2 + LENGTH(@TIMESEPARATOR))) THEN 
 SET sHora = SUBSTRING_INDEX(pHora, @TIMESEPARATOR, 1);
 SET sMinutos = SUBSTRING_INDEX(pHora, @TIMESEPARATOR, -1);
 IF ( (SELECT INSTR(pHora, @TIMESEPARATOR) > 1) AND 
 (SELECT FNC_CHK_ISNUMERIC(sHora) = 1) AND 
 (SELECT FNC_CHK_ISNUMERIC(sMinutos) = 1 ) AND
 (LENGTH(sHora) = @MAXTIMEDIGITLENGTH) AND
 (LENGTH(sMinutos) = @MAXTIMEDIGITLENGTH)
 ) THEN
 SET iHora = CONVERT( sHora, UNSIGNED INTEGER);
 SET iMinutos = CONVERT(sMinutos, UNSIGNED INTEGER);
 IF ((iHora <= @MAXHOURS) AND (iMinutos <= @MAXMINUTES)) THEN 
 SET ppresul = TRUE;
 ELSE
 SET ppresul = FALSE;
 END IF;
 ELSE
 SET ppresul = FALSE;
 END IF;
 ELSE
 SET ppresul = FALSE;
 END IF; 
 RETURN ppresul;
END$$
DELIMITER ;

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: