修改MySQL的時區,參數time_zone

轉自 https://www.cnblogs.com/xingzc/p/7896460.html

 

首先需要查看mysql的當前時區,用time_zone參數

[html] view plain copy

  1. mysql> show variables like '%time_zone%';     
  2. +------------------+--------+  
  3. | Variable_name    | Value  |  
  4. +------------------+--------+  
  5. | system_time_zone | CST    |  
  6. | time_zone        | SYSTEM |  
  7. +------------------+--------+  
  8. 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 另外也可以通過命令行在線修改

[html] view plain copy

  1. set time_zone = timezone  
  2. 比如北京時間(GMT+0800)  
  3. set time_zone = '+8:00'; 如下:  
  4. mysql> set time_zone='+8:00';  
  5. Query OK, 0 rows affected (0.00 sec)  
  6.   
  7. mysql> show variables like '%time_zone%';     
  8. +------------------+--------+  
  9. | Variable_name    | Value  |  
  10. +------------------+--------+  
  11. | system_time_zone | CST    |  
  12. | time_zone        | +08:00 |  
  13. +------------------+--------+  
  14. 2 rows in set (0.00 sec)  


 

3 再通過select now()來驗證時區

[html] view plain copy

  1. mysql> show variables like '%time_zone%';     
  2. +------------------+--------+  
  3. | Variable_name    | Value  |  
  4. +------------------+--------+  
  5. | system_time_zone | CST    |  
  6. | <span style="color:#3366ff;">time_zone        | +08:00 </span>|  
  7. +------------------+--------+  
  8. 2 rows in set (0.00 sec)  
  9.   
  10. mysql> select now();  
  11. +---------------------+  
  12. | now()               |  
  13. +---------------------+  
  14. | <span style="color:#3333ff;">2013-08-05 10:35:31 </span>|  
  15. +---------------------+  
  16. 1 row in set (0.00 sec)  
  17.   
  18. mysql>  <span style="color:#ff0000;">set </span><span style="color:#ff0000;">time_zone='+0:00';  
  19. </span>Query OK, 0 rows affected (0.00 sec)  

[html] view plain copy

  1. mysql> show variables like '%time_zone%';  
  2. +------------------+--------+  
  3. | Variable_name    | Value  |  
  4. +------------------+--------+  
  5. | system_time_zone | CST    |  
  6. |<span style="color:#ff0000;"> time_zone        | +00:00 </span>|  
  7. +------------------+--------+  
  8. 2 rows in set (0.00 sec)  

[html] view plain copy

  1. mysql> select now();  
  2. +---------------------+  
  3. | now()               |  
  4. +---------------------+  
  5. | <span style="color:#ff0000;">2013-08-05 02:35:43 </span>|  
  6. +---------------------+  
  7. 1 row in set (0.00 sec)  


 

參考文獻: http://dev.mysql.com/doc/refman/5.7/en/time-zone-leap-seconds.html

 




======補充==

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時間。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章