MySQL TIMESTAMP isn't behaving as advertised
Your mysql server's global configuration don't allow you to insert ZEROS into table column. 
The global configuration parameter SQL_mode is responsible for this behavior. You can find it in your my.ini file if configured or you can also query mysql server to display its value, 

select @@SQL_mode;


It should return you 'STRICT_ALL_TABLES,NO_ZERO_IN_DATE', which needs to be reset by sql command set global SQL_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; or as per your requirement.