Según como entiendo es que en el select estas haciendo mal porque sacas por separado el dia, el mes y el año y ese dia que estas sacando es el que intentas convertir a la semana y como bien lo dijiste la funcion necesita un numero del 1 al siete y al sacar el dia puede sacar un dia mayor a siete.
Lo que deberías sacar es la fecha completa una vez que tengas esa fecha usa la funcion weekday(de la fecha tomada de tu select) para que te diga el dia de la semana en numero y si necesitas mostrar la descripcion de ese numero utiliza la funcion weekdayname(weekday(de la fecha tomada de tu select))...Ojala te sirva mi aporte