MYSQL incorrect DATETIME format

doctrine, doctrine-1.2, mysql, php, zend-framework

Solution

If it exists, you can try removing `STRICT_TRANS_TABLES` from sql-mode in your my.ini.

This can cause this error with a datetime string value containing the format you have not being converted to mysql datetime. This my.ini change was reported as a fix in:

- PING causes 500 Internal Server Error - Incorrect datetime value (AuthPuppy Bug #907203)

Problem

I have an app with Doctrine 1 and I generate `update_datetime` fields for objects via `new Zend_Date->getIso()`. It worked just fine for years, but now I got a new notebook and Doctrine tries to insert a `DATETIME` fields as a string `"2013-07-12T03:00:00+07:00"` instead of normal MySQL datetime format `"2013-07-12 00:00:00"` which is totally weird. The very same code runs just fine on another computer. Everything is nearly identical – MySQL 5.6.12, PHP 5.3.15 on both. Any idea where should I look? `Fatal error: Uncaught exception 'Doctrine_Connection_Mysql_Exception' with message 'SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2013-07-12T03:00:00+07:00' for column 'nextrun' at row 1' in library/Doctrine/Connection.php:1083` UPDATE Ok with the help from StackOverflow community I finally solved it. The problem was with `STRICT_TRANS_TABLES` in `sql_mode` variable. But changing it in `/etc/my.cnf` seemed not enough, so I had to run `mysql -uroot` and type the following: `set sql_mode=NO_ENGINE_SUBSTITUTION; set global sql_mode=NO_ENGINE_SUBSTITUTION;` Thus removing `STRICT_TRANS_TABLES` UPDATE2 How to get rid of STRICT forever? How to get rid of STRICT SQL mode in MySQL

Original source

Related problems