MySQL无效的日期时间格式

时间:2017-08-03 13:11:59

标签: mysql yii timestamp

当我尝试将值2016-03-27T03:15:51.213插入到数据类型为' timestamp'的列时,我收到此错误在我的Yii1应用程序中:

exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2016-03-27T03:15:51.213' for column 'created' at row 1.

最奇怪的是,当我尝试插入2016-03-27T13:15:51.213的价值时 - 每一件事都可以。怎么了?

我使用PHP 5.6和MySql 5.7

在我的Windows机器上使用OpenServer

2 个答案:

答案 0 :(得分:0)

最后,我找到了解决方案。问题的原因是在我的Windows机器上。我有一个积极的选择"自动过渡到冬季和夏季时间"。

所以,由于这个选项,我的计算机不知道时区变化时凌晨3点到4点之间的时间,因为当打开选项时,给定时间实际上不存在)))这么简单)< / p>

当我在电脑上关闭此选项并重新启动时,消息已从日志中消失。

BTW:这个问题不会出现在拥有Linux和UTC设置的电脑上,而且无法自动转换到冬季和夏季。

希望我的回答对某人有帮助。

答案 1 :(得分:-1)

做这样的事情。首先从字符串datetime

创建一个datetime对象
$datetime = date("Y-m-d h:i:s", strtotime("2016-03-27T13:15:51.213"));// Output = 2016.03.27 01:15:51 

然后在sql查询中使用这个$ datetime。