我数据库定义了int(4),理论上存储12的时候,应该会显示0012才对啊,为什么实际还是12?如果我想显示为0012这样的,怎么做?

解决方案 »

  1.   

    int(4)是长度,不是占位数,谁说应该显示0012?
      

  2.   

    没吧,随便是设置几,长度还是2的32次-1,只是显示不一样
    如果你选择的是int(4) 你存储12则数据库中存储的是0012,如果填写12345,此时超过了他的指定宽度则按原样存储
      

  3.   

    作为对 ANSI/ISO SQL92 标准的一个扩展,MySQL 也支持整型类型 TINYINT、MEDIUMINT 和 BIGINT。另外一个扩展是 MySQL 支持随意指定一个整型数值的显示格式,这通过在类型的基本关键词后跟一个括号来实现(例如 INT(4))。这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。当与可选的扩展属性 ZEROFILL 一起使用时,缺省填补用的空格被零代替。举例来说,一个列被定义为 INT(5) ZEROFILL,插入的值 4 被检索出来时为 00004。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 MySQL 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,MySQL 信任地认为所有的值均适合原始的列宽度。不过我在MySQL(Windows下)中,还从来没有试出过ZEROFILL的功能。 
      

  4.   

    要零填充(ZEROFILL)默认情况下是“不应该显示0012”