mysql 杂记 —— 时区问题
查看时区:
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个小时)。
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:
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
说明:
mysql 杂记 —— 时区问题的更多相关文章
- mysql设置时区方法
set global time_zone = '+2:00'; ##修改mysql全局时区 set time_zone = '+2:00'; ##修改当前会话时区 flush privileges; ...
- 修改MySQL的时区
修改MySQL的时区,涉及参数time_zone 首先需要查看mysql的当前时区,用time_zone参数 ? 1 2 3 4 5 6 7 8 9 [html] mysql> show var ...
- MySQL修改时区的方法小结
这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令行模式.配置文件方式及代码方式,需要的朋友可以参考下 方法一:通过mysql命令行模式下动态修改 1.1 ...
- MySql数据库时区异常,java.sql.SQLException: The server time zone value '?й???׼ʱ?' is unrecognized or represents more than one time zone.
JDBC访问MySql异常 Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException ...
- [转]MySQL修改时区的方法小结
本文转自:https://www.cnblogs.com/mracale/p/6064447.html 这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令 ...
- mysql修改时区
查看mysql当前时间 查看mysql时区设置 查看mysql数据库的时区 mysql修改时区的几种方法
- [ Mariadb ] 记录一次MySQL数据库时区的问题
操作系统:Centos 7数据库:5.5.52-MariaDB 根本问题:由于系统时区不对,造成数据库的时区和数据的时间不正确. 处理办法: # 查看系统时区, [root@mongodb ~]# t ...
- mysql更改时区
set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区 set time_zone = '+8:00'; ##修改当前会话时区 flu ...
- mysql修改时区的几种方法(转载自https://www.cnblogs.com/shiqiangqiang/p/8393662.html)
说明: 以下记录修改mysql时区的几种方法. 具体: 方法一:通过mysql命令行模式下动态修改 1.1 查看mysql当前时间,当前时区 select curtime(); #或select no ...
随机推荐
- docker笔记1--了解docker
1 docker是什么 (1)背景 docker是基于go语言实现的开源容器项目.目标是实现"build ship and run any app,anywhere",通过对应用的 ...
- DotNetty是微软的Azure团队,使用C#实现的Netty的版本发布
DotNetty是微软的Azure团队,使用C#实现的Netty的版本发布 Netty(DotNetty)原理解析 一.背景介绍 DotNetty是微软的Azure团队,使用C#实现的Netty的版本 ...
- Oracle Spatial分区应用研究之一:分区与分表查询性能对比
1.名词解释 分区:将一张大表在物理上分成多个分区,逻辑上仍然是同一个表名. 分表:将一张大表拆分成多张小表,不同表有不同的表名. 两种数据组织形式的原理图如下: 图 1分表与分区的原理图 2.实验目 ...
- Windows常用命令的使用
3.Tracert Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间.该诊断实用程序将包含不同生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP) ...
- 04 Mybatis 框架的环境搭建及入门案例
1.搭建 Mybatis 开发环境 mybatis的环境搭建 第一步:创建maven工程并导入坐标 第二步:创建实体类和dao的接口 第三步:创建Mybatis的主配置文件 SqlMapConifg. ...
- js玩命加载……
在请求数据加载的过程中,经常需要显示请求等待,写了一个简单的请求等待—- html代码如下 <!--页面载入显示--> <div id="dataLoad" st ...
- 解决计算精度问题:BigDecimal
BigDecimal类 BigDecimal所在包:java.math,不可变的.任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成 ...
- handy网络库源码阅读
简洁易用的C++11网络库,From:https://github.com/yedf/handy 在整理过去的资料过程中,发现过去有关注过这一个网络库,简单看了一下属于轻量级的实现,因此本文将对该库进 ...
- python学习-38迭代器和生成器
迭代器和生成器 ---- 迭代器协议和for循环工作机制 1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个Stoplteration异常,以终止迭代(只能往 ...
- HTML常用技巧
1. 为网页链接添加快捷键:accesskey 属性 https://zhidao.baidu.com/question/2267343500557447508.html 2. 键盘事件设置快捷键:h ...