mysql时区的缩写以及相关操作介绍

63次阅读
没有评论

共计 3079 个字符,预计需要花费 8 分钟才能阅读完成。

本篇内容介绍了“mysql 时区的缩写以及相关操作介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、时区缩写

UTC 是协调世界时 (Universal Time Coordinated) 英文缩写,是由国际无线电咨询委员会规定和推荐, 并由国际时间局 (BIH) 负责保持的以秒为基础的时间标度。UTC 相当于本初子午线 (即经度 0 度) 上的平均太阳时,过去曾用格林威治平均时 (GMT) 来表示. 北京时间比 UTC 时间早 8 小时,以 1999 年 1 月 1 日 0000UTC 为例,UTC 时间是零点,北京时间为 1999 年 1 月 1 日早上 8 点整。

GMT(Greenwich Mean Time)是格林尼治平时: 
由于地球轨道并非圆形,其运行速度又随着地球与太阳的距离改变而出现变化,因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到地球自转轴相对轨道面的倾斜度所影响。为着要纠正上述的不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太阳时。在格林尼治子午线上的平太阳时称为世界时 (UT0),又叫格林尼治平时(GMT)。为了确保协调世界时与世界时(UT1) 相差不会超过 0.9 秒,有需要时便会在协调世界时内加上正或负闰秒。因此协调世界时与国际原子时 (TAI) 之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局 (IERS) 负责决定何时加入闰秒。

也就是说,UTC 基本上等于 GMT

CET

(英語:Central European Time,CET)欧洲中部时间是比世界标准时间(UTC)早一个小时的时区名称之一。它被大部分欧洲国家和部分北非国家采用。冬季时间为 UTC+1,夏季欧洲夏令时为 UTC+2。

CEST

欧洲中部夏令时间(Central European Summer Time,简称 CEST)比世界标准时间(
)早两个小时的时区名称之一。它被大部分欧洲国家和部分北非国家在夏天采用(UTC+2),冬季这些国家使用
欧洲中部时间
(UTC+1)

 

CST

CST 却同时可以代表如下 4 个不同的时区: 

Central Standard Time (USA) UTC-6:00 

Central Standard Time (Australia) UTC+9:30 
China Standard Time UTC+8:00 
Cuba Standard Time UTC-4:00 
可见,CST 可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。  也就是说,这个需要根据使用的场景来确定使用的是哪个时区。

时区在线转换工具网站
 http://www.timebie.com/timezone/centraleuropeansummerbeijing.php 

二、MYSQL 的时区

查看  

mysql  select @@global.time_zone,@@session.time_zone,@@global.system_time_zone;
+--------------------+---------------------+---------------------------+
| @@global.time_zone | @@session.time_zone | @@global.system_time_zone |
+--------------------+---------------------+---------------------------+
| SYSTEM | SYSTEM | CST |
+--------------------+---------------------+---------------------------+
1 row in set (0.00 sec)
mysql  show variables like  %time_zone% 
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)
mysql  SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP); 
+--------------------------------+
| TIMEDIFF(NOW(), UTC_TIMESTAMP) |
+--------------------------------+
| 08:00:00 |
+--------------------------------+
1 row in set (0.00 sec)

SYSTEM 表示使用“OS 时区”;CST,这里 cst 是“中国标准时间 +8:00 区”

也可以在 OS 下查看,是“东 8 区”:

   

[root@mydb31 ~]# date -R
Fri, 14 Dec 2018 11:08:34 +0800
[root@mydb31 ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Aug 17 13:26 /etc/localtime -  ../usr/share/zoneinfo/Asia/Shanghai
[root@mydb31 ~]# cat /etc/localtime 
TZifǜɺ pʕ˛Z?p ~h!Iap ^J#)Cp$Gg%_? ?+(У?~pCDTCSTTZif2 
 ÿÿÿÿ~6C)ÿÿÿÿǜÿÿÿÿɺ pÿÿÿÿʕÿÿÿÿ˛Z?p ~h!Iap ^J#)Cp$Gg%_? ?+(У?q־LMTCDTCST
CST-8

        可以看出修改 OS 时区的方法  

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2. mysql 的时区系统表

mysql 系统库中几个用来维护时区的系统表,默认空的

可以使用 shell
mysql_tzinfo_to_sql
/usr/share/zoneinfo | mysql
root mysql
加载

三、修改 mysql 服务器的时区

  方法一:修改 global 变量

 set global time_zone = +8:00 ## 修改 mysql 全局时区为北京时间,即我们所在的东 8 区

 set time_zone = +8:00 ## 修改当前会话时区

 flush privileges; #立即生效

  方法二:通过修改 my.cnf 配置文件来修改时区

# vim /etc/my.cnf ## 在 [mysqld] 区域中加上

default-time_zone = +8:00

# /etc/init.d/mysqld restart ## 重启 mysql 使新时区生效

  四、timestamp 和 datetime 时间类型

timestamp 类型:会自动把时间转成 gmt 时间存储时间,取出时,又会自动转换成服务器的时区,所以各位不用指定时区(默认东 8 区);

datetime 类型:没有时区概念,对于有跨国业务的数据库,存储时统一转换成 gmt 格式存储,取出时指定时区显示

“mysql 时区的缩写以及相关操作介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计3079字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)