create database if not exists `mo`;USE `mo`;/*数据表 `date` 的表结构*/DROP TABLE IF EXISTS `date`;CREATE TABLE `date` (
  `ID` int(10) unsigned NOT NULL auto_increment,
  `Date` date NOT NULL default '0000-00-00',
  `NewDate` timestamp(14) NOT NULL,
  `Str` decimal(45,0) NOT NULL default '345',
  PRIMARY KEY  (`ID`)
) TYPE=MyISAM;/*数据表 `date` 的数据*/insert into `date` values (12,'0000-00-00',20070402112232,10000000017500020102),(11,'0000-00-00',20070325032406,10000000017500010101),(14,'0000-00-00',00000000000000,10000000017500010101),(15,'0000-00-00',00000000000000,10000000017500010101),(16,'0000-00-00',00000000000000,10000000017500010101);

解决方案 »

  1.   

    超出Decimal能表达的数值范围了!
      

  2.   

    zjntche_cn请问,有什么类型能存20位的数字吗?
      

  3.   

    刚才说错了,更正一下,数值没有超过Decimal的精度范围,Decimal的精度可以达到65位,很有可能是你的数据有问题!
      

  4.   

    奇怪,我这里很好呀mysql> select * from date;
    +----+------------+---------------------+----------------------+
    | ID | Date       | NewDate             | Str                  |
    +----+------------+---------------------+----------------------+
    | 12 | 0000-00-00 | 2007-04-02 11:22:32 | 10000000017500020102 |
    | 11 | 0000-00-00 | 2007-03-25 03:24:06 | 10000000017500010101 |
    | 14 | 0000-00-00 | 0000-00-00 00:00:00 | 10000000017500010101 |
    | 15 | 0000-00-00 | 0000-00-00 00:00:00 | 10000000017500010101 |
    | 16 | 0000-00-00 | 0000-00-00 00:00:00 | 10000000017500010101 |
    +----+------------+---------------------+----------------------+
      

  5.   

    用的就是楼主的语句生成的。
    MySQL5 下