miércoles, 19 de marzo de 2014

Encontrar que fecha cae un día de una semana x en MySql

SELECT DATE_SUB( DATE_ADD( MAKEDATE( 2014, 1 ) , INTERVAL 11 WEEK ) , INTERVAL WEEKDAY( DATE_ADD( MAKEDATE( 2014, 1 ) , INTERVAL 11 WEEK ) ) -4 DAY ) AS viernes;
Donde 11 es el número de la semana, 2014 el años y 4 representa al viernes que se busca. Esta query devuelve el viernes de la semana 11, para comprenderla la veremos parte por parte: -MAKEDATE( 2014, 1) devuelve la fecha del primer día del año 2014 -DATE_ADD( MAKEDATE( 2014, 1 ) , INTERVAL 11 WEEK ) devuelve la fecha del primer día del 2014 más exactamente 11 semanas después -WEEKDAY( DATE_ADD( MAKEDATE( 2014, 1 ) , INTERVAL 11 WEEK ) ) -4 DAY devuelve el día de la semana 11 a partir del 1 de enero del 2014, la semana comenzando desde cero a 6 y a eso le resta el 4 días (notése el 4, ese representa al día viernes, si quisiéramos el martes sería 1, pues para MySql la semana comienza en 0, osea lunes). -Toda la query: retorna la resta de la fecha de 11 semanas después del 1 de enero menos los días restantes de la cuenta anterior