我有一个包含DATE
列的表格。所有日期都有效,即没有制造商。但实际上我们只使用了这些日期的年份部分。我尝试将此列的类型更改为YEAR(4)
,我发现以下情况:
什么可能导致这些问题,我该如何解决这个问题?目前我们创建了一个Rake任务,我们首先创建一个额外的列,将现有的列日期复制到新的列,更改列并在几年前复制。
修改:http://dev.mysql.com/doc/refman/5.6/en/upgrading-from-previous-series.html
答案 0 :(得分:0)
试试这个
ALTER TABLE `tablename`
CHANGE `columnName` `columnName` YEAR
这会在phpmyadmin中返回0000。您应该创建一个新列并重命名,然后删除旧列。
答案 1 :(得分:0)
YEAR(2)
数据类型在选择使用之前应考虑某些问题。
As of MySQL 5.6.6, YEAR(2) is deprecated.
现有表中的YEAR(2)列被视为之前,但新表或更改表中的YEAR(2)将转换为YEAR(4)。
在这里阅读更多内容:
http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-13.html