mysql年份低于1900年

Jul*_*zyk 5 mysql macos windows-7

我创建了一个表"作曲家"VALUES(名称VARCHAR(30),出生年份(4),死亡年份(4),城市VARCHAR(30),国家VARCHAR(30)).然后我插入作曲家VALUES('BACH Johann Sebastian',1685,1750,'Eisenach','德国');. 它返回2个错误.这些年不是在1901年到2155年之间.

有没有办法改变这个默认值,所以我可以有这些列的实际年份?似乎无法在网上找到任何东西.

我只使用INTEGER(4)作为那些列,但如果可能的话,我想使用YEAR(4).

jmi*_*loy 7

很明显,这是此类型在文档中工作的唯一方式.

YEAR(4)类型仅使用1个字节,并且限制在256年的范围内.如果您的用例完全落在不同的256年空间内,您当然可以将它们存储一定量,并在写入之前和阅读之后调整自己,比如说-300.

或者,使用a SMALLINTUNSIGNED SMALLINT代替full INT来使用2个字节.不是'YEAR(4)'使用的1字节,而是小于4字节INT

  • @instead 1个字节的日期可以存储256个不同的值,0到255.事实证明MySQL在1901年到2155年使用了255个这样的值,还有一个用于无效(0000). (2认同)