me gustaría tener el número de la semana y el año, para una fecha determinada, a partir de MySQL con las siguientes reglas:Fin de año con MySQL
- Si la fecha se encuentra al final del año, pero en la primera semana del próximo año, necesito devolver 1 como número de semana.
- Si la fecha es a principios de año, pero en la última semana del año anterior, necesito devolver 52 (o 53) como número de semana.
He leído la función de semana en MySQL pero no puedo obtener el resultado que quiero.
Date and Time Functions: WEEK(date[,mode])
estoy en el calendario francés, así que tengo que comenzar la semana el lunes y la semana 1 es la primera semana con más de 3 días este año.
Por lo tanto sólo pueden utilizar las opciones 1 y 3.
Cuando escribo las siguientes consultas:
seleccione semana ('2012-12-31', 3), el resultado es 1
semana seleccione ('2012-12-31', 1), el resultado es 53
Cuando la prueba en la primera Jan 2016:
seleccione semana ('1/1/2016', 3), el resultado es 53
semanas de selección ('1/1/2016', 1), el resultado es 0
La opción 1 no se puede utilizar, porque no puedo detectar que el 2012-12-31 sea el próximo año.
opción 3 puede ser utilizado, pero tengo las sumas dos piezas de la lógica: si WeekNumber = 1 y el mes = 12, año + 1 y si weekumber = 53 y el mes = 1, entonces el año - 1
¿El alguien tiene una mejor solución?
Saludos
No estoy muy claro en sus reglas, pero ¿qué pasa con el modo 7? – deadly
el modo 7 es "con un lunes de este año", así que no puedo usarlo ... no sigue las reglas francesas. en mi necesidad si el 1/1/2013 es la semana 1 y es un día, me gustaría tener el 12/31/2011 semana 1 + año 2012. Creo que tengo que usar IF –