SolutionOpsBlog técnico Hablar con un consultor
Blog técnico › Desarrollo de software

Funciones almacenadas en MySQL

Por Jonathan Urrutia2 min de lectura

Mejorando la eficiencia y modularidad de tus consultas SQL

Una función almacenada, también conocida como simplemente función, es un conjunto de instrucciones o bloques de código SQL que se almacenan en una base de datos y pueden ser invocados o llamados en diferentes momentos para realizar tareas específicas. Puede recibir cero o varios parámetros y siempre retorna un valor como resultado. Normalmente, se utiliza mediante una sentencia SELECT o dentro de una expresión.

Para crear una función almacenada se utiliza la sentencia CREATE FUNCTION. A continuación, se presenta un ejemplo de función creada en MySQL, la cual retornará la cantidad de días hábiles entre dos fechas (total de días sin contar fin de semana).

DELIMITER //

CREATE FUNCTION CalcularDiasHabiles(fechaInicio DATE, fechaFin DATE)
RETURNS INT
NO SQL
BEGIN
    DECLARE diasHabiles INT DEFAULT 0;
    DECLARE fechaActual DATE;

    SET fechaActual = fechaInicio;

    WHILE fechaActual <= fechaFin DO
        IF WEEKDAY(fechaActual) NOT IN (5, 6) THEN
            SET diasHabiles = diasHabiles + 1;
        END IF;

        SET fechaActual = fechaActual + INTERVAL 1 DAY;
    END WHILE;

    RETURN diasHabiles;
END //

DELIMITER ;

Como se puede observar, una función almacenada contiene múltiples elementos que pasaremos a detallar a continuación:

Para ejecutar la función almacenada, esta se debe llamar de la siguiente forma:

SELECT CalcularDiasHabiles('2023-06-01', '2023-06-30');

Lo que devolverá un total de 22 días.

<solutionops-team> Autor: Jonathan Urrutia </solutionops-team>

← Volver al blog técnico