原地址:http://blog.csdn.net/mchdba/article/details/9763521
首先需要查看mysql的當前時區,用time_zone參數
- mysql> show variables like '%time_zone%';
- +------------------+--------+
- | Variable_name | Value |
- +------------------+--------+
- | system_time_zone | CST |
- | time_zone | SYSTEM |
- +------------------+--------+
- 2 rows in set (0.00 sec)
1 可以通過修改my.cnf
在 [mysqld] 之下加
default-time-zone=timezone
來修改時區。如:
default-time-zone = '+8:00'
修改完了記得記得重啟msyql
注意一定要在 [mysqld] 之下加 ,否則會出現 unknown variable 'default-time-zone=+8:00'
2 另外也可以通過命令行在線修改
- set time_zone = timezone
- 比如北京時間(GMT+0800)
- set time_zone = '+8:00'; 如下:
- mysql> set time_zone='+8:00';
- Query OK, 0 rows affected (0.00 sec)
- mysql> show variables like '%time_zone%';
- +------------------+--------+
- | Variable_name | Value |
- +------------------+--------+
- | system_time_zone | CST |
- | time_zone | +08:00 |
- +------------------+--------+
- 2 rows in set (0.00 sec)
3 再通過select now()來驗證時區
- mysql> show variables like '%time_zone%';
- +------------------+--------+
- | Variable_name | Value |
- +------------------+--------+
- | system_time_zone | CST |
- | <span style="color:#3366ff;">time_zone | +08:00 </span>|
- +------------------+--------+
- 2 rows in set (0.00 sec)
- mysql> select now();
- +---------------------+
- | now() |
- +---------------------+
- | <span style="color:#3333ff;">2013-08-05 10:35:31 </span>|
- +---------------------+
- 1 row in set (0.00 sec)
- mysql> <span style="color:#ff0000;">set </span><span style="color:#ff0000;">time_zone='+0:00';
- </span>Query OK, 0 rows affected (0.00 sec)
- mysql> show variables like '%time_zone%';
- +------------------+--------+
- | Variable_name | Value |
- +------------------+--------+
- | system_time_zone | CST |
- |<span style="color:#ff0000;"> time_zone | +00:00 </span>|
- +------------------+--------+
- 2 rows in set (0.00 sec)
- mysql> select now();
- +---------------------+
- | now() |
- +---------------------+
- | <span style="color:#ff0000;">2013-08-05 02:35:43 </span>|
- +---------------------+
- 1 row in set (0.00 sec)
======補充==
GMT(Greenwich Mean Time)代表格林尼治標准時間,這個大家都知道。
而CST卻同時可以代表如下 4 個不同的時區:
- Central Standard Time (USA) UT-6:00
- Central Standard Time (Australia) UT+9:30
- China Standard Time UT+8:00
- Cuba Standard Time UT-4:00
可見,CST可以同時表示美國,澳大利亞,中國,古巴四個國家的標准時間。
前面提到的通過 Java 獲取的CST時間用的是China Standard Time,而客戶端JavaScript則默認采用的是美國的中部時間。
所以將 Fri Aug 28 09:37:46 CST 2009 加上 6 個小時,再加上 8 個小時,就等於 Fri Aug 28 2009 23:37:46 GMT+0800
可見,在以后的編程中為了避免錯誤,還是不要使用CST時間,而盡量采用GMT時間。
====