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 32 33 34 35 36 37 38 39 40
|
DROP PROCEDURE IF EXISTS Proc_Days_sans_Weekends;
CREATE PROCEDURE Proc_Days_sans_Weekends(Start_date DATE, End_date DATE)
BEGIN
DECLARE Date_V1 DATE;
SET Date_V1 = Start_date;
DROP TABLE IF EXISTS Journee_de_travail;
DROP TABLE IF EXISTS Journee_Weekends;
CREATE TEMPORARY TABLE Journee_de_travail(Journee_Work date);
CREATE TEMPORARY TABLE Journee_Weekends(Journee_OFF date);
IF ( Start_date > End_date ) THEN
SELECT "Invalid dates supplied";
END IF;
WHILE Date_V1 <= End_date DO
IF (DAYNAME(Date_V1) = 'Sunday' or DAYNAME(Date_V1) = 'Saturday' ) THEN INSERT INTO Journee_Weekends VALUES(Date_V1);
ELSE
INSERT INTO Journee_de_travail VALUES(Date_V1);
END IF;
SET Date_V1 = DATE_ADD(Date_V1,INTERVAL 1 DAY);
END WHILE;
SELECT count(Journee_Work) AS _of_days_Taken FROM Journee_de_travail;
END;
--Tests ( regardes sur l'image ) :
CALL Proc_Days_sans_Weekends('2012-11-01','2012-12-30');
-- on peut afficher une table de weekends ou bien de journées de travail ^^
select * from Journee_de_travail;
select * from Journee_Weekends; |
Partager