当我尝试将值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答案 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。