Días de comienzo y fin del horario de verano en MySQL

Puede ser interesante conocer los días exactos del comienzo y fin del horario de verano en MySQL, sobretodo para la programación de procesos automáticos, o para lo que se necesite.

Estos días no tienen fijado un número de día fijo en el año, pero si que son días relativos respecto al mes del cambio, como ahora se verá. Estos días siempre son de la noche del sábado al domingo por la mañana para que tengan el menor impacto posible. Hay que recalcar que con estas sentencias se obtiene el comienzo y fin del horario de verano para Europa, ya que hay lugares del mundo que los hacen otros días distintos, o bien, no realizan el cambio de horario de verano.

El día del cambio a horario de verano (a las 2:00 de la madrugada son las 3:00), se corresponde con el último domingo de marzo y se puede calcular en MySQL de la siguiente manera.

SELECT DATE(LAST_DAY(CONCAT(CAST(YEAR(NOW()) AS CHAR),'-03-01')) -
((7 + WEEKDAY(LAST_DAY(CONCAT(CAST(YEAR(NOW()) AS CHAR),'-03-01'))) - 6) % 7))
AS lastSundayMarch; 

El cambio opuesto, el del fin del horario de verano (a las 3:00 de la madrugada son las 2:00), se corresponde con el último domingo de octubre y en MySQL se obtendría de la siguiente forma.

SELECT DATE(LAST_DAY(CONCAT(CAST(YEAR(NOW()) AS CHAR),'-10-01')) -
((7 + WEEKDAY(LAST_DAY(CONCAT(CAST(YEAR(NOW()) AS CHAR),'-10-01'))) - 6) % 7))
AS lastSundayOctober;

Deja un comentario

Pin It on Pinterest