MYSQL不正确的DATETIME格式

fir*_*dev 22 php mysql doctrine zend-framework doctrine-1.2

我有一个带有Doctrine 1的应用程序,我通过生成update_datetime对象的字段new Zend_Date->getIso().它工作得很好多年,但现在我得到了一个新的笔记本和Doctrine尝试插入DATETIME字段作为字符串"2013-07-12T03:00:00+07:00"而不是正常的MySQL日期时间格式"2013-07-12 00:00:00",这是完全奇怪的.

同样的代码在另一台计算机上运行得很好.一切都几乎相同 - 两者都是MySQL 5.6.12,PHP 5.3.15.知道我应该在哪里看?

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

好的,在StackOverflow社区的帮助下,我终于解决了它.问题STRICT_TRANS_TABLES在于sql_mode变量.但是改变它/etc/my.cnf似乎还不够,所以我必须运行mysql -uroot并键入以下内容:

set sql_mode=NO_ENGINE_SUBSTITUTION; set global sql_mode=NO_ENGINE_SUBSTITUTION;

因此删除 STRICT_TRANS_TABLES

UPDATE2 如何永远摆脱STRICT?如何在MySQL中摆脱STRICT SQL模式

hak*_*kre 12

如果存在,您可以尝试STRICT_TRANS_TABLES从my.ini中的sql-mode中删除.

这可能会导致此错误,其日期时间字符串值包含您尚未转换为mysql datetime的格式.这个my.ini更改被报告为修复: