Cuando intentaba cargar datos en la base de datos de ejemplo de Pentaho en MySQL en ambiente windows, aparecieron errores en la inserción de ciertos registros en tablas con columnas de tipo timestamp, específicamente con los valores'2003-10-11 00:00:00.000000' y '2004-10-09 00:00:00.000000'.
Luego de pensar un momento (tal como en la foto), se me ocurrió una posible explicación a este fallo debido a la zona horaria de la base de datos y he aquí la explicación...Primero hay que saber que MySQL tiene soporte de hora por zonas, al instalar el servidor MySQL en windows, por defecto toma la zona horaria de la máquina, con "select @@global.time_zone, @@session.time_zone;" se puede obtener la hora del sistema, si retorna SYSTEM es porque tiene la misma zona horaria de la máquina donde está instalado el servidor, como en mi caso.
Y segundo se debe considerar la fecha y horas locales, si bien las fechas parecen ser correctas en el formato, de acuerdo al país donde vivo (Chile) esas fechas no existen debido a que en Chile se hacen cambios de horario 2 veces al año:
- el segundo sábado del mes de octubre se adelanta 60 minutos la hora y,
- el segundo sábado del mes de marzo donde se retrasa 60 minutos la hora.
Soluciones a esto puede ser cambiar la zona horaria al inicio del script con "SET time_zone = timezone_value;" pero antes se deben actualizar los datos de las tablas de zonas horarias que están en la base mysql que vienen sin datos en la instalación por defecto o simplemente agregando la siguiente línea al principio del archivo:"SET time_zone = '+0:00';"
Con lo cual se asegura la correcta inserción de los datos de ejemplo.
Es interesante el manejo de zonas horarias por parte de los motores de bases de datos, y de MySQL en particular ya que mejora la calidad de los datos y simplifica ciertas validaciones en los datos.
PS: Debo agregar que la costumbre local es cambiar la hora el sábado a media noche, es decir, a las 23:59:59 horas del sábado se pasa a las 01:00:00 horas del domingo.

