所以我最近完成了一个研究项目的申请。这一切都很好,我所剩下的就是将应用程序投入生产。ER_TRUNCATED_WRONG_VALUE:错误的日期时间值
我使用MySQL与Node.js(我知道,我们不喜欢那样,但有人必须尝试它)。我有一个套接字,它将聊天消息添加到包含文本,日期时间等的mysql消息表中。日期时间设置为new Date()
。
现在我放置在生产服务器的应用程序(重新安装的依赖时,MySQL等),当我写邮件,我突然得到这个错误:
Error: ER_TRUNCATED_WRONG_VALUE: Incorrect datetime value: '2017-06-01T09:45:06.253Z' for column 'message_datetime' at row 1
我没有得到这个错误在发展,所以我问自己,如果我下载不同版本的MySQL ......我做的:
发展:
mysql Ver 14.14 Distrib 5.5.54, for debian-linux-gnu (i686) using readline 6.3
生产
mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
和消息表看起来像这样:
CREATE TABLE message ( message_id INT AUTO_INCREMENT, message_sender_id VARCHAR(80) NOT NULL, message_datetime DATETIME, message_text TEXT, message_chat_id INT NOT NULL, PRIMARY KEY(message_id), FOREIGN KEY(message_chat_id) REFERENCES chat(id) ON DELETE CASCADE ) ENGINE=InnoDB;
那么有什么区别?为什么'yyyy-mm-ddThh:mm:ss.%%%Z'
突然不是有效的日期格式?我该如何解决?
感谢您的帮助!
https://dev.mysql.com/doc/refman/5.7/en/ datetime.html:_“MySQL以'YYYY-MM-DD HH:MM:SS'格式检索并显示DATETIME值。支持的范围是'1000-01-01 00:00:00'至'9999-12-31 23:59:59' 。“_ – CBroe
_”我没有得到开发中的错误“_ - 这可能更像是一个服务器配置(关于容错)的问题,而不是它实际上的工作,并将_valid_日期插入到数据库中 – CBroe
@CBroe我didn我甚至不知道有不同的容错能力,我在我的开发环境中使用了vagrant,但是把生产服务器放在数字海洋上,或许生产服务器上的某种更新降低了容错性,然后 – Jesper