为了验证 TIMESTAMP 存储时间与时区有关,显示的值也依赖于时区 看了mysql 时区
时间网 世界时区
MySQL查看和修改时区的方法
查看当前时区
1. 在MySQL客户端,可以通过如下命令查看当前时区:
SELECT @@global.time_zone;
2. 查看当前时区的设置,可以通过如下命令:
SHOW VARIABLES LIKE '%time_zone%';
输出内容包含了当前时区设置、可用的时区列表,以及系统时间和UTC时间之间的时差(即偏移量)。
下面验证mysql的 TIMESTAMP 存储时间与时区有关,显示的值也依赖于时区
默认mysql的时区是跟随系统时区显示,服务器是英国格林威治标准时间(GMT),改成中国时间东八区 ( UTC +8 ),看的出date2字段前后的时间变化跟时区有关。
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | GMT |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)
mysql> select date2 from new where id=1;
+---------------------+
| date2 |
+---------------------+
| 2023-12-05 16:06:51 |
+---------------------+
1 row in set (0.00 sec)
mysql> set time_zone = '+08:00';
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | GMT |
| time_zone | +08:00 |
+------------------+--------+
2 rows in set (0.01 sec)
mysql> select date2 from new where id=1;
+---------------------+
| date2 |
+---------------------+
| 2023-12-06 00:06:51 |
+---------------------+
1 row in set (0.00 sec)
修改时区
1. 修改MySQL全局时区
将MySQL服务的时区更改为UTC:
SET GLOBAL time_zone = '+00:00';
这里的’+00:00’代表UTC时间。
2. 修改当前会话时区
将当前会话的时区更改为本地时区:
SET time_zone = 'Asia/Shanghai';
这里’Asia/Shanghai’代表中国的时区。
以上两种方法可以根据实际需求设置时区。
示例说明:
假设你需要在MySQL中使用同一个时区,这时可以通过修改全局时区实现:
SET GLOBAL time_zone = '+08:00';
如果你需要在MySQL中同时使用不同的时区,可以通过修改当前会话时区来实现:
SET time_zone = 'America/New_York';
这里’America/New_York’代表美国纽约的时区。