查看时区:

SHOW VARIABLES LIKE "%time_zone%";

输出

Variable_name Value

system_time_zone CST

time_zone SYSTEM

分析:

这里有两个变量,其中 time_zone 是指 mysql 数据库的时区。默认为 SYSTEM,即等于服务器的系统时区。

system_time_zone 表示系统时区,因为我们的系统服务器是在中国,system_time_zone 为 CST(China Standard Time)。

这里有个坑,CST 除了表示中国时区,它还有更多含义:

美国中部时间 Central Standard Time (USA) UTC-06:00

澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30

中国标准时 China Standard Time UTC+08:00

古巴标准时 Cuba Standard Time UTC-04:00

比如说 jdbc 驱动在读取到 system_time_zone 是 CST 后,它会默认为 美国中部时间而不是中国标准时。中国标准时与美国标准时相差 14个小时,最终取出来的时间比你实际存入的时间少14个小时(因为夏令时的缘故有时会少13个小时)。

实验剖析:

测试环境:本地时区是 utc+8, 数据库时区是 utc。

表:

CREATE TABLE `tb1` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(40) DEFAULT NULL,

`createTime` datetime DEFAULT NULL,

`updateTime` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),

PRIMARY KEY (`id`)

)

案例1:

INSERT INTO table (dateCreated) VALUES (CURRENT_TIMESTAMP or NOW())

INSERT INTO tb1 (`name`, createTime, updateTime) VALUES ('lin', '2019-11-24 15:10', '2019-11-24 15:10');

INSERT INTO tb1 (`name`, createTime, updateTime) VALUES ('lin', NOW(), NOW())

查询结果为:(当前时间为 2019-11-27 15:28:13)

id name createTime updateTime

------ ------ ------------------- ---------------------

3 lin 2019-11-24 15:10:00 2019-11-24 15:10:00

4 lin 2019-11-27 07:25:13 2019-11-27 07:25:13

说明:无论是 datetime 还是 timestamp 直接插入字符串不会变,插入 now() ,now() 的时间显示的是数据库当前时区所在当前时间,即 utc 时间。(比本地时间少 8 小时)

案例2:

INSERT INTO table (dateCreated) VALUES (?)

LocalDateTime time = LocalDateTime.of(2019, 11, 27, 15, 42);

jdbcTemplate.update("INSERT INTO tb1 (`name`, createTime, updateTime) VALUES ('lin', ?, ?)", time, time);

查询结果为:

id name createTime updateTime

------ ------ ------------------- ---------------------

3 lin 2019-11-24 15:10:00 2019-11-24 15:10:00

4 lin 2019-11-27 07:25:13 2019-11-27 07:25:13

10 lin 2019-11-27 07:42:00 2019-11-27 07:42:00

说明:

jdbc 驱动读取数据库的时区信息,将本地时间转换为数据库时间,保存到数据库(比本地时间少 8 小时)

mysql数据库系统时区_mysql 杂记 —— 时区问题相关推荐

  1. mysql地区时间_mysql – 带时区的日期时间格式

    首先,阅读DATETIME和TIMESTAMP类型in the mysql docs. 然后,决定使用哪种字段类型: >如果要在不进行MySQL执行时区转换的情况下提交,存储和检索相同的值,请使 ...

  2. mysql timezone上海_MySql的时区(serverTimezone)引发的血案

    前言 mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空. 血案现场 配置jdbc的URL:jdbc:mysql://[IP]:[PORT]/[DB]?c ...

  3. mysql数据库系统配置文件_MySQL数据库(6)----配置文件 my.cnf 的使用

    1. 使用源码安装好MySQL后,其配置文件一般位于 /usr/local/my.cnf,可以使用如下命令查看查看配置文件的搜索顺序: root@javis:~$ mysqld --help --ve ...

  4. mysql的timestamp,unix_time和时区问题

    今日,多次在不同时区的mysql数据库的timestamp字段上遇到各种问题,搅来搅去,越搅越乱, 故此写下此文记录,理清思路. 首先澄清一个概念: 所有的linux系统文件系统底层存储的都是UTC时 ...

  5. MySQL数据库修改时间、时区(包括阿里云控制台修改)!

    # 查看数据库时区 mysql> show variables like '%time_zone%';+------------------+--------+| Variable_name | ...

  6. mysql cst_mysql中的CST时区问题

    在项目操作过程发现了一个时区的问题,问题现象为sql打印的时间和数据库里面存储的时间不一样.后来发现问题原因为mysql的时区为CST.网上搜索了下CST时区,才发现这个时区已经被诟病已久.它居然能够 ...

  7. mysql安装后记得设置时区

    原文地址:mysql中的CST时区问题_ljj125896的博客-CSDN博客_数据库时区cst 原因: 1.mysql中的CST时区问题 在项目操作过程发现了一个时区的问题,问题现象为sql打印的时 ...

  8. windows mysql.tar安装_MySQL的安装

    MySQL数据库服务的推荐安装方法是通过MySQL网站直接下载安装.这种方法在一些不同的平台上都有支持,仅在不同的平台上的安装细节上略有不同.然而,其主要步骤都一样.请注意你需要管理好权限设置以完成此 ...

  9. mysql数据类型选择_MySQL学习笔记(二):MySQL数据类型汇总及选择参考

    本文主要介绍了MySQL 的常用数据类型,以及实际应用时如何选择合适的类型. ******几个通用的简单原则:******* 1. 更小的通常更好.但是要确保没有低估需要存储的值的范围,如果无法确定哪 ...

  10. linux 查看tomcat时区,项目系统时区问题

    Spring时区转换问题 spring转json的默认实现jackson中会根据时区去转换时间,而jackson的默认时区跟国内是相差8小时的. 解决方法: 重新设置当前项目地所在时区.使用注解的方法 ...

最新文章

  1. java itext 设计器_使用Java组件itext 生成pdf的介绍
  2. Go 语言编程 — 并发 — GMP 调度模型
  3. mockito_使用FizzBu​​zz和Mockito进行单元测试
  4. pytorch 检索数组
  5. sql必知必会(第四版) 学习笔记一
  6. mysql 启动事件 启动触发器功能
  7. scikit-learn学习笔记(二)load_files加载自己的文件
  8. 95-910-165-源码-FlinkSQL-Flink SQL 中的时间属性
  9. Python使用scipy进行多项式计算与符号计算
  10. Linux 以form表单形式上传文件
  11. 属于服务器端运行的程序_服务器端编程Java 引起人们的注意很大程度上始于 applet...
  12. 微信小程序 java网上购物商城系统
  13. 虚拟机使用主机摄像头 ” usb chicony lenovo easycamera 连接失败,驱动错误“
  14. homotopy-同伦_拔剑-浆糊的传说_新浪博客
  15. 高维空间中的体积(包含递归思想的初步理解)
  16. html css 忽略,HTML与CSS中易被忽略的基础知识点
  17. dis的前缀单词有哪些_以ir dis为前缀的单词各20个,要多种词性
  18. 万能命令:快捷直达你想要的在线工具
  19. matlab高斯投影坐标,基于matlab的高斯投影正反算与相邻带坐标换算程序设计
  20. 稿定设计怎么去除水印?

热门文章

  1. 日期插件layui的》laydate
  2. 序:我的多旋翼飞控学习之路
  3. 《曾国藩传》读书笔记
  4. 电脑磁盘分区、合并的方法指南!
  5. linux怎么样用终端打开百度,linux下用终端访问百度网站.doc
  6. python里逗号是啥_Python中逗号的三种作用
  7. loadrunner伪装ip访问网页
  8. 1.2. Container Overview
  9. 如何卸载手机系统自带应用(无需root)?【亲测有用】
  10. Java项目实战【超级详细】