MySQL时区处理

开发人员执行如下SQL

[email protected]{wm_ztcj} >select  timestampdiff(second,‘1970-1-1‘,‘2014-07-23 9:18:40‘) as timestamp;
+------------+
| timestamp  |
+------------+
| 1406107120 |
+------------+
1 row in set (0.00 sec)

在代码中传递获取到的时间戳并用from_unixtime函数还原日期

mysql> select from_unixtime(1406107120);
+---------------------------+
| from_unixtime(1406107120) |
+---------------------------+
| 2014-07-23 17:18:40       |
+---------------------------+
1 row in set (0.00 sec)

返回的时间值相差8个小时,查看当前系统的时间戳

[email protected]{wm_ztcj} >\! date
Wed Jul 23 10:49:09 CST 2014

查看数据库的时区设定

mysql> show variables like ‘%system_time%‘; 
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| system_time_zone | CST   |
+------------------+-------+
1 row in set (0.00 sec)

这个值默认是与操作系统的时区相同

查阅官档:

http://dev.mysql.com/doc/refman/5.6/en/time-zone-support.html

在mysqld启动之后默认由system_time_zone参数控制,而每个会话的时区设定则由time_zone变量控制

mysql> select @@global.system_time_zone,@@time_zone;
+---------------------------+-------------+
| @@global.system_time_zone | @@time_zone |
+---------------------------+-------------+
| CST                       | SYSTEM      |
+---------------------------+-------------+
1 row in set (0.00 sec)

由于此时的系统时区是CST=GMT+8,所以把time_zone替换成+00:00就是GMT了

mysql> set time_zone=‘+00:00‘;   
Query OK, 0 rows affected (0.00 sec)

mysql> select from_unixtime(1406107120);
+---------------------------+
| from_unixtime(1406107120) |
+---------------------------+
| 2014-07-23 09:18:40       |
+---------------------------+
1 row in set (0.00 sec)

至于from_unixtime与unix_timestamp的差别在另一篇博客中记录。

MySQL时区处理

时间: 2024-07-31 03:39:27

MySQL时区处理的相关文章

[转]PHP时区/MySql时区/Linux时区

本文转自:https://blog.csdn.net/watermelonmk/article/details/82669062 问题背景:手头上有个国外的项目,为了所谓的国际化,得将时区修改至[美国纽约]时区.一开始想这个问题的时候觉得十分easy,理所当然是不是只要我将服务器的时间改成[美国纽约]时区就行了.然而实际上对一个项目而言,影响时间的是开发环境以及选择的数据库管理系统. 所以我们需要改的是 php的时区/MySql的时区. 一.修改php时区 需要到配置文件php.ini 无则添加

MySQL时区错误导致server time zone value 'Öйú±ê׼ʱ¼ä' 错误

时区错误 由于中国是东八区,跟mysql配置不同,需要修改: 管理员登录MySQL OK成功 MySQL时区错误导致server time zone value 'Öйú±ê׼ʱ¼ä' 错误 原文地址:https://www.cnblogs.com/XT-xutao/p/10591155.html

oracle、mysql时区设置对timestamp的不同影响

因最近国际去Oracle上MySQL,这就不可避免的涉及到时区和timestamp问题.做一下实验,总结一下. Oracle 首先看下oracle concepts对timestamp的定义: The TIMESTAMP data type is an extension of the DATE data type. It stores fractional seconds in addition to the information stored in the DATE data type.

MySQL时区参数

环境介绍: OS版本:RHEL5.5 MySQL版本:5.5.40 参考链接:http://dev.mysql.com/doc/refman/5.5/en/time-zone-leap-seconds.html 有一个需求:一个考勤系统,多个AP分布在全球,时间必须以+8时区来计算,那必须修改MySQL服务器时间来决定! 查看mysql server当前时区 mysql> show variables like '%time_zone%'; +------------------+-------

解决mysql时区问题以及SSL问题

看了下网上的教程,觉得都太麻烦啦,这里推荐个简单的! 解决时区问题 只需要加上serverTimezone=UTC即可,如下: spring.datasource.url=jdbc:mysql://127.0.0.1:3306/wallet?serverTimezone=UTC&characterEncoding=utf-8 解决SSL问题 这个也挺简单的,只需要关闭SSL即可,只需要加上useSSL=false即可,如下: spring.datasource.url=jdbc:mysql://

MySQL时区问题

环境 windows10 MySQL 8.0.13 IDEA 问题 The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more t 分析 查阅资料发现这都是因为安装mysql的时候时区设置的不正确 mysql默认的是美国的时区,而我们中国大陆要比他们迟8小时,采用+8:00格式:在mysql中查看时区的设置: show variables like '%time_zone%'; 解决方法 找到mysql

修改MySQL时区

查看数据库时区 mysql> show variables like '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | CST | | time_zone | CST -07:00| +------------------+--------+ 2 rows in set (0.00 sec) 这里CST

更改 AWS RDS mysql时区 -摘自网络

AWS RDS AWS上搭建数据库的时候,不是DB on EC2就是RDS,但是选择RDS时,Timezone怎么处理? 「面向全球提供的AWS来讲理所当然的是UTC」,而RDS也不是例外.把服务器迁移到AWS时,「数据库能不能使用中国时间」是常见的一个问题. DB on EC2的话,配置一下系统的Timezone就可以,但是RDS是我们无法直接登录的因此需要使用MySQL的功能来实现. 介绍如何修改RDS MySQL的Timezone. 在RDS的Master用户不同于MySQL root用户

django部署ubuntu数据库MYSQL时区问题

SELECT * FROM mysql.time_zone; SELECT * FROM mysql.time_zone_name; mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql https://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html https://stackoverflow.com/questions/15017799/how-to-conv