为什么MySQL的timestamp类型的字段,默认为CURRENT_TIMESTAMP的,会比实际服务器时间少8个小时啊我刚才插入一条数据,Mysql里的timestamp类型的字段,默认为CURRENT_TIMESTAMP的, 时间是:2010-08-17 02:43:08但是实际刚才是:2010-08-17 10:43:08。也就是说少了10个小时
怎么一回事啊

解决方案 »

  1.   

    http://topic.csdn.net/u/20100421/10/7777205d-6b2c-4229-a20a-eb9d92b88396.html
      

  2.   

    TIMESTAMP类型的数据与时区有关...
    插入的时间会转化成本地时区的时间存放...你看看你的时区是什么..
    show variables like 'time_zone';如果是system 就说明这个和主机的时区是一样的。你检查下你OS的时区吧...中国的时区是东八区(+8:00)
      

  3.   

    现在最简单办法 就是使用
    set GLOBAL time_zone= 你现在所在的时区..
      

  4.   

    上面的方法前提是 没启用二进制日志或者镜像机制。。你可以去配置文件里面改 default-time-zone选项 然后重启服务器去改变它的时区设置
      

  5.   

    mysql> show variables like '%time_zone%';
    +------------------+--------+
    | Variable_name    | Value  |
    +------------------+--------+
    | system_time_zone | CST    |
    | time_zone        | SYSTEM |
    +------------------+--------+
    2 rows in set (0.00 sec)把这两个变量设置正确即可
      

  6.   

    CURRENT_TIMESTAMP和CURRENT_TIMESTAMP()和NOW()
    都是一样的,即mysql设置的时区的当前时间,格式为2010-08-17 15:40:50
      

  7.   

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