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 ...
随机推荐
- SpringBoot系列教程JPA之新增记录使用姿势
SpringBoot系列教程JPA之新增记录使用姿势 上一篇文章介绍了如何快速的搭建一个JPA的项目环境,并给出了一个简单的演示demo,接下来我们开始业务教程,也就是我们常说的CURD,接下来进入第 ...
- 修改mysql自增字段的方法
修改mysql自增字段的方法 修改 test_user 库 user 表 auto_increment为 10000(从10000开始递增) <pre>mysql> alter ta ...
- 腾讯的网站如何检测到你的 QQ 已经登录?
转:http://www.lovelucy.info/tencent-sso.html 在 QQ 已经登录的情况下,手动输入网址打开 QQ 邮箱 或者 QQ 空间 等腾讯网站,可以看到网页已经检测到本 ...
- Markdown新手入门
目录 Markdown新手入门 一.字体样式 二. 标题 三.列表 四.引用和代码块 五.插入图片和超链接 六.创建表格 七. 上标和下标 八.着重显示和高亮显示 我是尾巴 Markdown新手入门 ...
- JSVC安装
执行./start-all.sh启动hadoop时报错 Starting datanodes node1: ERROR: Cannot set priority of datanode process ...
- Codechef TSUM2 Sum on Tree 点分治、李超线段树
传送门 点分治模板题都不会迟早要完 发现这道题需要统计所有路径的信息,考虑点分治统计路径信息. 点分治之后,因为路径是有向的,所以对于每一条路径都有向上和向下的两种.那么如果一条向上的路径,点数为\( ...
- Java8 基础数据类型包装类-Long
https://blog.csdn.net/u012562117/article/details/79023440 基础 //final修饰不可更改,每次赋值都是新建类(其中-128~127是通过L ...
- ADO.NET 七(一个例子)
通过一个完整的实例实现课程信息管理功能的操作,包括查询.修改.删除课程信息等操作. 1) 创建课程信息表 create table StuCourse ( id int primary key ide ...
- CSS是什么
css是层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. CSS不 ...
- JavaScript中匿名函数this指向问题
this对象是在运行时基于函数执行环境绑定的,在全局函数中,this=window,在函数被作为某个对象的方法调用时,this等于这个对象. 但是匿名函数的执行环境是全局性的,所以匿名函数的this指 ...