个人理解,MySQL 设置时区的不同会影响日期相关函数的返回结果。对数据表里的日期数据插入、查询没有影响,存储的都是本地时间。
举例来说,
对于 select now(); 如果 MySQL 服务器时区被设置为东五区,返回的就是东五区的时间,而不是东八区的时间。
对于 select unix_timestamp('1970-01-01 08:00:00');
如果 MySQL 服务器时区被设置为东五区,则返回
+---------------------------------------+
| unix_timestamp('1970-01-01 08:00:00') |
+---------------------------------------+
| 10800 |
+---------------------------------------+
如果 MySQL 服务器时区被设置为东八区,则返回
+---------------------------------------+
| unix_timestamp('1970-01-01 08:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+
注:
set session time_zone='+5:00'; -- 设置MySQL 服务器时区为东五区