MySQL 时区默认是服务器的时区。
可以通过以下命令查看

SQL代码

  1. mysql> show variables like '%time_zone%';   

  2. +------------------+--------+   

  3. | Variable_name    | Value  |   

  4. +------------------+--------+   

  5. | system_time_zone | CST    |    

  6. | time_zone        | SYSTEM |    

  7. +------------------+--------+   

  8. rows in set (0.00 sec)   

可以通过修改my.cnf
在 [mysqld] 之下加

default-time-zone=timezone
来修改时区。如:
default-time-zone = '+8:00'
改了记得重启msyql喔
注意一定要在 [mysqld] 之下加 ,否则会出现 unknown variable 'default-time-zone=+8:00'

另外也可以通过命令 set time_zone = timezone
比如北京时间(GMT+0800)
set time_zone = '+8:00';
这个和php的时区设置又有点差别,比如北京时间在php中是
date_default_timezone_set('Etc/GMT-8');

美国pst时间(GMT-08:00)
set time_zone = '-8:00';

SQL代码

  1. mysql> set time_zone = '+8:00';   

  2. Query OK, 0 rows affected (0.00 sec)   

  3.   

  4. mysql> select now();   

  5. +---------------------+   

  6. | now()               |   

  7. +---------------------+   

  8. | 2008-12-29 11:26:36 |    

  9. +---------------------+   

  10. 1 row in set (0.00 sec)   

  11.   

  12. mysql> set time_zone = '-8:00';   

  13. Query OK, 0 rows affected (0.00 sec)   

  14.   

  15. mysql> select now();   

  16. +---------------------+   

  17. | now()               |   

  18. +---------------------+   

  19. | 2008-12-28 19:27:09 |    

  20. +---------------------+   

  21. 1 row in set (0.00 sec)