20 lines
520 B
MySQL
20 lines
520 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`nextWeek`(vYearWeek INT)
|
||
|
RETURNS int(11)
|
||
|
DETERMINISTIC
|
||
|
BEGIN
|
||
|
/**
|
||
|
* A partir de un perido año/semana en formato AAAASS devuelve el siguiente
|
||
|
* periodo. Esta función trabaja de la misma forma que la función WEEK() en
|
||
|
* modo 3.
|
||
|
*/
|
||
|
DECLARE vYear INT DEFAULT FLOOR(vYearWeek / 100);
|
||
|
|
||
|
IF vYearWeek < YEARWEEK(CONCAT(vYear, '-12-31'), 3) THEN
|
||
|
RETURN vYearWeek + 1;
|
||
|
ELSE
|
||
|
RETURN ((vYear + 1) * 100) + 1;
|
||
|
END IF;
|
||
|
END$$
|
||
|
DELIMITER ;
|