我正在重新设计一个数据库,该数据库当前2012-10-27T07:30:38+00:00
以 varchar 字段的格式导入 ISO 8601 日期。当前数据库托管在 MySQL 5.5 服务器上。
在搜索文档和各种 SO 帖子时,我还没有找到关于我应该在 MySQL 中为此使用什么数据类型的明确答案。最接近的帖子是: MySQL 插入 DATETIME:使用 ISO::8601 格式是否安全?它提供了一种解决方法,但这不是一个理想的选择。
MySQL 文档 ( http://dev.mysql.com/doc/refman/5.5/en/date-and-time-types.html ) 没有说明,我在官方文档中可以找到的唯一参考资料位于 page :http ://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
其中指出“第一个和第二个参数的可能值导致几个可能的格式字符串(对于使用的说明符,请参阅 DATE_FORMAT() 函数描述中的表)。ISO 格式是指 ISO 9075,而不是 ISO 8601。”
现在 PostgreSQL 文档特别提到了 ISO8601(http://www.postgresql.org/docs/9.2/static/datetime-keywords.html和http://www.postgresql.org/docs/9.2/static/datatype-datetime。 html)这导致我的问题:
MySQL 是否正确支持 ISO 8601,或者我应该考虑使用原生支持的数据库?
- 编辑 -
尝试将上面的示例时间戳插入到 datetime 列中会出现以下错误:
10:55:55 insert into test(date1) values('2012-10-27T07:30:38+00:00') Error Code: 1292. Incorrect datetime value: '2012-10-27T07:30:38+00:00' for column 'date1' at row 1 0.047 sec