El síntoma: la zona horaria "no existe" para la base de datos
Algunas aplicaciones (paneles de gestión, CRMs, plataformas de reservas, aplicaciones a medida, etc.) necesitan trabajar con zonas horarias con nombre, como Europe/Madrid o UTC. Si el servidor de base de datos no las reconoce, verás errores de este tipo:
Mensajes como "Unknown or incorrect time zone: 'Europe/Madrid'".
La función CONVERT_TZ() devuelve NULL en lugar de la fecha convertida.
Tareas programadas o informes que aparecen con horas incorrectas o directamente fallan.
La causa
MySQL y MariaDB traen de fábrica las tablas de zonas horarias (mysql.time_zone*) vacías. Hasta que no se cargan con los datos del sistema, la base de datos solo entiende desplazamientos numéricos (como "+02:00"), pero no nombres de zona como Europe/Madrid, con lo que cualquier aplicación que los use fallará.
La solución: cargar las tablas de zonas horarias
La carga se realiza a nivel de servidor mediante el procedimiento oficial de MariaDB (mariadb-tzinfo-to-sql), que importa todas las zonas horarias del sistema operativo a la base de datos. Tras la carga, quedan disponibles Europe/Madrid, UTC y el resto de zonas con nombre.
En nuestros servidores esta operación la realizamos nosotros: si tu aplicación necesita zonas horarias con nombre, abre un ticket de soporte indicando el servidor o cuenta afectada y la zona horaria que necesita tu aplicación, y las cargaremos por ti.
Cómo comprobar que ya funciona
Una vez cargadas las tablas, puedes verificarlo ejecutando esta consulta desde phpMyAdmin o tu aplicación:
SELECT CONVERT_TZ(NOW(), 'UTC', 'Europe/Madrid');
Si devuelve una fecha y hora (en lugar de NULL), las zonas horarias ya están disponibles y tu aplicación funcionará con normalidad.
