Amigo talvez te sirva este codigo, lo escribi (Firebird) hace algun tiempo...
Es un procedimiento almacenado.
Como llamarlo:
SELECT * FROM Dias_Entre_Fechas(Fecha_Inicial, Fecha_Final)
Retorna
DAY$NUMBER DAY$NAME DAY$DATE
--------------------------------------
1 MARTES 12/01/2010
2 MIERCOLES 13/01/2010
3 JUEVES 14/01/2010
4 VIERNES 15/01/2010
Código SQL
[-]CREATE PROCEDURE DIAS_ENTRE_FECHAS (
first$date DATE,
last$date DATE)
RETURNS (
day$number INTEGEr,
day$name CHAR(10),
day$date DATE )
AS
DECLARE VARIABLE day$week INTEGER;
begin
day$date= FIRST$DATE;
day$number = 0;
while (day$date <= LAST$DATE) DO
begin
day$week=extract(weekday from day$date);
IF (day$week=0) THEN
day$name='DOMINGO';
ELSE IF (day$week=1) THEN
day$name='LUNES';
ELSE IF (day$week=2) THEN
day$name='MARTES';
ELSE IF (day$week=3) THEN
day$name='MIERCOLES';
ELSE IF (day$week=4) THEN
day$name='JUEVES';
ELSE IF (day$week=5) THEN
day$name='VIERNES';
ELSE IF (day$week=6) THEN
day$name='SABADO';
day$number = day$number+1;
suspend;
day$date = day$date+1;
end
end
Lo puedes adaptar a MySQL...Espero te sirva...
Saludos desde
Concepcion-Chile