Muchas gracias a ambos!!!
El primer problema que tenía, era que intentaba inserir una fecha no válida para un timestamp, aunque el formato fuese correcto:
Cita: Tenga en cuenta que aunque DATETIME, DATE, y TIMESTAMP pueden especificarse usando el mismo conjunto de formatos, los tipos no tienen el mismo rango de valores. Por ejemplo, TIMESTAMP no pueden ser anteriores a 1970 o posteriores a 2037. Esto significa que una fecha como '1968-01-01', que sería legal como DATETIME o DATE no es un valor válido TIMESTAMP y se convierte a 0 si se asigna a un objeto de este tipo.
Y la segunda pregunta me parece perfecto utilizar tipo
time en vez de
timestamp para almacenar horas!