MYSQL不正确的DATETIME格式

我有一个使用Doctrine 1的应用程序,并且update_datetime通过生成对象的字段new

Zend_Date->getIso()。它工作了好几年,但现在我有了一个新的笔记本,Doctrine尝试将DATETIME字段作为字符串插入,"2013-07-12T03:00:00+07:00"而不是"2013-07-12

00:00:00"完全奇怪的普通MySQL datetime格式。

完全相同的代码可以在另一台计算机上正常运行。一切几乎都相同–两者均使用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

好的,在StackOverflow社区的帮助下,我终于解决了它。问题出STRICT_TRANS_TABLESsql_mode变量中。但是更改它/etc/my.cnf似乎还不够,所以我必须运行mysql

-uroot并键入以下内容:

set sql_mode=NO_ENGINE_SUBSTITUTION; set global

sql_mode=NO_ENGINE_SUBSTITUTION;

因此删除 STRICT_TRANS_TABLES

如何永远摆脱STRICT?如何在MySQL中摆脱STRICT

SQL模式

回答:

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

这可能会导致此错误,其中datetime字符串值包含尚未转换为mysql datetime的格式。据报道此my.ini更改已修复:

  • PING导致500内部服务器错误-日期时间值不正确 (AuthPuppy错误#907203)

以上是 MYSQL不正确的DATETIME格式 的全部内容, 来源链接: utcz.com/qa/426473.html

回到顶部