MYSQL时区导致时间差了14或13小时的解决方法

下面我将详细讲解“MYSQL时区导致时间差了14或13小时的解决方法”的完整攻略。

问题描述

在MYSQL中,有时会因为时区的问题,导致实际时间与存储时间相差了14或13小时的情况。例如,存储的时间是12:00,但是实际查询得到的时间是22:00或者23:00。

解决方法

解决这个问题,我们需要进行以下步骤:

步骤一:设置MYSQL时区

首先,我们需要设置MYSQL的时区,在MYSQL的配置文件中加上如下代码:

[mysqld]
default-time-zone = '+8:00'

这里的+8:00表示东八区的时间,你可以根据实际情况设置自己所在时区的时间。

步骤二:修改会话时区

接下来,我们需要修改会话时区,使其与MYSQL的时区相同。可以通过以下命令来修改:

SET time_zone = '+8:00';

这里的+8:00表示东八区的时间,你可以根据实际情况设置自己所在时区的时间。

步骤三:验证修改效果

最后,我们需要验证修改效果是否生效。我们可以通过以下命令查询系统时间以及MYSQL中存储的时间:

SELECT now(),utc_timestamp();

如果执行上述命令后得到的结果是相同的,那么就说明修改成功了。否则,需要重新检查设置是否正确。

示例说明

下面,我将举两个例子,来说明如何应用上述解决方法。

示例一:

假设你所在的时区是东八区,你执行以下命令:

SELECT now(),utc_timestamp();

得到的结果为:

+---------------------+---------------------+
| now()               | utc_timestamp()      |
+---------------------+---------------------+
| 2021-03-01 12:00:00 | 2021-03-01 04:00:00 |
+---------------------+---------------------+

我们可以看到,实际时间是12:00,但是存储时间是04:00,相差了8小时。

为了解决这个问题,我们需要按照上述方法修改MYSQL的时区。设置完毕后,再执行以下命令:

SET time_zone = '+8:00';
SELECT now(),utc_timestamp();

这次得到的结果为:

+---------------------+---------------------+
| now()               | utc_timestamp()      |
+---------------------+---------------------+
| 2021-03-01 12:00:00 | 2021-03-01 12:00:00 |
+---------------------+---------------------+

可以看到,现在得到的时间是正确的了,实际时间和存储时间相同。

示例二:

假设你所在的时区是美国洛杉矶,你执行以下命令:

SELECT now(),utc_timestamp();

得到的结果为:

+---------------------+---------------------+
| now()               | utc_timestamp()      |
+---------------------+---------------------+
| 2021-03-01 12:00:00 | 2021-03-01 04:00:00 |
+---------------------+---------------------+

我们可以看到,实际时间是12:00,但是存储时间是04:00,相差了8小时。

为了解决这个问题,我们需要按照上述方法修改MYSQL的时区。假设我们想把时区设置成美国洛杉矶时间,那么设置代码如下:

[mysqld]
default-time-zone = '-8:00'

然后,在MYSQL中执行以下命令:

SET time_zone = '-8:00';
SELECT now(),utc_timestamp();

这次得到的结果为:

+---------------------+---------------------+
| now()               | utc_timestamp()      |
+---------------------+---------------------+
| 2021-03-01 12:00:00 | 2021-03-01 20:00:00 |
+---------------------+---------------------+

可以看到,现在得到的时间是正确的了,实际时间和存储时间相同。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MYSQL时区导致时间差了14或13小时的解决方法 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • mysql条件查询and or使用方法及优先级实例分析

    MySQL条件查询AND OR使用方法及优先级实例分析 概述 MySQL条件查询时,经常会用到AND和OR连接多个条件。在使用的时候,需要注意条件的优先级以及如何正确组合条件,避免出现查询结果与预期不符的情况。 AND与OR AND 和 OR 是最常见的条件连接方式,其中 AND 类似于逻辑中的“与”, OR 类似于逻辑中的“或”。它们的使用方式如下: AN…

    database 2023年5月22日
    00
  • linux下安装redis及redis的php扩展

    http://hi.baidu.com/mucunzhishu/item/ead872ba3cec36db84dd798c CentOS 下 Redis 2.2 安装配置详解 一. 关于 Redis Redis是一种高级 key-value 数据库。它跟 memcached 类似,不过数据可以持久化,而且支持的数据类型很丰富。它在保持键值数据库简单快捷特点的…

    Redis 2023年4月11日
    00
  • 在windows系统中设置MySQL数据库

    MySQL搭建 效果图 step1:下载安装包 https://downloads.mysql.com/archives/community/ step2:解压后即完成安装 step3:创建 my.ini 配置文件(注意路径) [mysqld] # 默认端口 port=3306 # mysql的安装目录,也是工作目录 basedir=”D:\\mysql-5…

    2023年4月8日
    00
  • 聊聊Mybatis中sql语句不等于的表示

    Mybatis是一款优秀的ORM框架,它在使用过程中需要将SQL语句进行编写与映射,而在SQL语句中“不等于”的表示有多种方式。 基础查询 在讲解不等于的表示之前,我们先简要回忆一下基础的查询语句和组成部分。基础的查询语句一般有三个主要的部分: SELECT 字段列表 FROM 数据表 WHERE 条件 其中,“WHERE”关键字后面的部分为筛选条件。 不等…

    database 2023年5月21日
    00
  • linux 之centos7搭建mysql5.7.29的详细过程

    下面是“Linux 之 CentOS7 搭建 MySQL 5.7.29 的详细过程”完整攻略: 1. 安装 MySQL 1.1 下载并安装 MySQL 的官方 YUM Repository sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 1…

    database 2023年5月22日
    00
  • PHP PDO函数库详解

    文章标题: PHP PDO函数库详解 PDO介绍 PDO是PHP官方推荐的关系型数据库访问抽象层,全称为PHP Data Object。它为PHP开发者提供了一种简单的、一致的接口连接各种不同的数据库,并且可以使用相同的函数进行数据库操作。 PDO支持多种常见的数据库(如MySQL、PostgreSQL、Oracle、SQL Server等),并且支持预处理…

    database 2023年5月21日
    00
  • 细谈Mysql的存储过程和存储函数

    细谈 MySQL 的存储过程和存储函数 MySQL 存储过程和存储函数是一种封装 SQL 语句和业务逻辑的方式,可减少应用程序和数据库之间的网络通信,提高数据处理效率,也可有效提高数据的安全性。在本篇文章中,我们将详细介绍 MySQL 存储过程和存储函数的定义、使用、应用场景和注意事项,并给出两条相关示例演示。 存储过程和存储函数的定义 存储过程是一组经过编…

    database 2023年5月22日
    00
  • MySQL数据库Event定时执行任务详解

    MySQL数据库Event定时执行任务详解 什么是MySQL Event? Event是MySQL数据库中一个重要的时间处理工具。我们可以通过使用Event,在MySQL数据库中设置定时任务以执行一系列的数据库操作。 如何创建MySQL Event? Event的创建需要用到MySQL的事件调度器,所以在创建一个Event之前,需要先确认MySQL开启了事件…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部