但是这个默认值会有问题明明是刚才 
2010-04-21 10:48左右插入的值,但是timestamp类型这个字段却是
2010-04-21 02:45:57
时间不正确 这是为什么啊

解决方案 »

  1.   

    给出你的create table 语句。另外检查一下你MYSQL的系统时间。
      

  2.   


    每个记录的这个字段就是默认的CREATE TABLE IF NOT EXISTS `order_main` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
      `orderid` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `m_id` int(10) unsigned NOT NULL,
      `orderStatus` tinyint(2) NOT NULL,
      `logtimie` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;
      

  3.   

    select now(); 看一下你的MYSQL的系统时间是多少?
      

  4.   

    这个是时区的原因,CURRENT_TIMESTAMP默认貌似不是北京时间而是国际变更线的时间。所以这里少了8个小时不知道default用now()行不行我也是mysql新手,请指正
      

  5.   


    now()
    2010-04-23 01:51:41
      

  6.   

    设置一下@@global.time_zone试试
    set @@global.time_zone = '+08:00'
    然后insert,应该能设置正确的值。
    你这种情况,在启动mysql之前,应该设置global.time_zonemysqld_safe --timezone='+08:00'
      

  7.   

    检查你的MYSQL时区设置。mysql> show variables like '%time_zone';
    +------------------+---------------------+
    | Variable_name    | Value               |
    +------------------+---------------------+
    | system_time_zone | China Standard Time |
    | time_zone        | SYSTEM              |
    +------------------+---------------------+
    2 rows in set (0.00 sec)mysql>
      

  8.   

    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  9.   

    你操作系统的时间不对。
    要么调整OS的时间,要么用这个函数UTC_TIMESTAMP()