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_TABLES
在sql_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