首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我将列的类型从int更改为year,会发生什么?

问如果我将列的类型从int更改为year,会发生什么?
EN

Stack Overflow用户
提问于 2010-04-15 05:19:16
回答 1查看 103关注 0票数 0

我在MySQL 4.0中有一个表,它当前有一个小整数(6)类型的year字段。如果我使用如下查询将其直接转换为Year类型,会发生什么情况:

代码语言:javascript
复制
ALTER TABLE t MODIFY y YEAR(4) NOT NULL DEFAULT CURRENT_TIMESTAMP;

当列y的当前成员具有像2010这样的值时?我假设,因为从技术上讲,year类型是1-255之间的值,高于1-255的值将被截断或损坏。

因此,如果MySQL不够聪明,不能意识到2010(int) =110(年),那么转换这些值的最简单的查询是什么?

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-15 05:33:53

来自MySQL Docs: 10.3.3 The year type

对于四位数格式,MySQL以

格式显示年份值,范围为1901到2155或0000。对于两位数格式,MySQL仅显示最后两位(最低有效位);例如,70 (1970或2070)或69 (2069)。

在这个范围之外的几年里:

非法年份值已转换为0000。

快速测试

代码语言:javascript
复制
alter table foo add b year(4) not null default current_timestamp;
update foo set b=a;

a       b
1900    0000
1901    1901
1950    1950
2000    2000
2002    2002
2121    2121
2155    2155
2156    0000
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2641121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档