失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Mysql 时区修改问题(冬令时夏令时)

Mysql 时区修改问题(冬令时夏令时)

时间:2021-09-12 02:28:11

相关推荐

Mysql 时区修改问题(冬令时夏令时)

1.起因:

前两天发现有一台mysql的测试机环境出现了和系统时区不一致的情况,情况如下:

mysql> show variables like '%time_zone%'; +------------------+--------+| Variable_name | Value |+------------------+--------+| system_time_zone | PDT || time_zone | SYSTEM |+------------------+--------+2 rows in set (0.01 sec)

[root@test2 ~]# date 01月 18日 星期三 01:15:16 PST

由于PST和PDT之间有夏令时的问题会导致一些时间相差一个小时。(PST与PDT都是美国时间但是中间有一个是含有夏令时的,所以在夏令时的时候回提前一个小时)

2.解决方案:

f配制文件修改:

可以通过修改f

在 [mysqld] 之下加

default-time-zone=timezone

来修改时区。如:

default-time-zone = '+8:00'

通过命令:

set time_zone = timezone

比如北京时间(GMT+0800)

set time_zone = '+8:00';

eg:mysql> set time_zone = '+8:00'; Query OK, 0 rows affected (0.17 sec)mysql> select now(); +---------------------+| now()|+---------------------+| -06-23 16:32:53 |+---------------------+1 row in set (0.00 sec)mysql> set time_zone = '-8:00'; Query OK, 0 rows affected (0.00 sec)mysql> select now(); +---------------------+| now()|+---------------------+| -06-23 00:33:21 |+---------------------+1 row in set (0.00 sec)

mysql 数据库中的时区信息默认为空:

mysql> show tables like "%time%";+---------------------------+| Tables_in_mysql (%time%) |+---------------------------+| time_zone || time_zone_leap_second || time_zone_name || time_zone_transition || time_zone_transition_type |+---------------------------+5 rows in set (0.00 sec)

插入后出现:(切记千万不要drop这个表只能清空,否则你以后都无法添加了,或者你需要重新新建这个表。建议不要否则重建特别的恶心)

mysql> SELECT * FROM time_zone_name WHERE name LIKE 'America/%' limit 10;+----------------------------------+--------------+| Name | Time_zone_id |+----------------------------------+--------------+| America/Adak | 54 || America/Anchorage| 55 || America/Anguilla | 56 || America/Antigua | 57 || America/Araguaina| 58 || America/Argentina/Buenos_Aires | 59 || America/Argentina/Catamarca| 60 || America/Argentina/ComodRivadavia | 61 || America/Argentina/Cordoba | 62 || America/Argentina/Jujuy| 63 |+----------------------------------+--------------+10 rows in set (0.00 sec)

测试结果:

美国不仅有时区,还有夏令时,冬令时,提前一小时,或者减慢一小时(在时区时间基础上)

美国夏令时将于03月13日当地时间早上02:00(北京时间14:00)开始,至11月6日结束,届时美国的交易时间将较冬令时提前1个小时

mysql> SELECT CONVERT_TZ('-03-13 01:30:00','-8:00','America/Los_Angeles') AS TIME\G*************************** 1. row ***************************TIME: -03-13 01:30:001 row in set (0.00 sec)mysql> SELECT CONVERT_TZ('-03-13 02:30:00','-8:00','America/Los_Angeles') AS TIME\G*************************** 1. row ***************************TIME: -03-13 03:30:001 row in set (0.00 sec)

付时区偏移差:

GMT 格林威治标准时间 GMT

UTC 全球标准时间 GMT

ECT 欧洲中部时间 GMT+1:00

EET 东欧时间 GMT+2:00

ART (阿拉伯)埃及标准时间 GMT+2:00

EAT 东非时间 GMT+3:00

MET 中东时间 GMT+3:30

NET 近东时间 GMT+4:00

PLT 巴基斯坦拉合尔时间 GMT+5:00

IST 印度标准时间 GMT+5:30

BST 孟加拉国标准时间 GMT+6:00

VST 越南标准时间 GMT+7:00

CTT 中国台湾时间 GMT+8:00

JST 日本标准时间 GMT+9:00

ACT 澳大利亚中部时间 GMT+9:30

AET 澳大利亚东部时间 GMT+10:00

SST 所罗门标准时间 GMT+11:00

NST 新西兰标准时间 GMT+12:00

MIT 中途岛时间 GMT-11:00

HST 夏威夷标准时间 GMT-10:00

AST 阿拉斯加标准时间 GMT-9:00

PST 太平洋标准时间 GMT-8:00

PNT 菲尼克斯标准时间 GMT-7:00

MST 西部山脉标准时间 GMT-7:00

CST 中部标准时间 GMT-6:00

EST 东部标准时间 GMT-5:00

IET 印第安那东部标准时间 GMT-5:00

PRT 波多黎各和美属维尔京群岛时间 GMT-4:00

CNT 加拿大纽芬兰时间 GMT-3:30

AGT 阿根廷标准时间 GMT-3:00

BET 巴西东部时间 GMT-3:00

CAT 中非时间 GMT-1:00

如果觉得《Mysql 时区修改问题(冬令时夏令时)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。