Mybatis查询Mysql datetime类型时,相差8小时 解决方案

查出来的数据跟数据库里的数据相差了8个小时,这是为什么呢?

这是因为Mysql 使用系统默认时区,东八区。

而Tomcat java使用UTC时区进行处理业务逻辑。

时区的不同,从而导致Mysql数据库中datetime类型的值查询后转到Java Bean,值多了8个小时。

解决方法

在url后面添加 serverTimezone=Asia/Shanghai :

jdbc.url=jdbc:mysql://127.0.0.1:3306/caipiao?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

原文地址:https://www.cnblogs.com/jsoso/p/11216461.html

时间: 2024-09-28 10:42:29

Mybatis查询Mysql datetime类型时,相差8小时 解决方案的相关文章

mybatis查询mysql的datetime类型数据时间差了14小时

今天使用mybatis查询mysql中的数据时,莫名其妙的所有时间都出错了,所有时间都比数据库时间多了14小时,考虑了一下,初步判定是系统时区的问题.因为mysql时区设置默认是操作系统时区,查看了下centos时区,东8区没有错,所以可以判定是代码里面设置了一个错误的时区. 现在开始调试mybatis源码,调试到mysql-connector-java-6.0.4.jar包的com.mysql.cj.jdbc.io.JdbcTimestampValueFactory的createFromTim

mybatis查询mysql的时间段

mapper文件的写法为:(模糊查询,查询时间段) <if test="com_name!=null and com_name!=''"> and sc.com_name like CONCAT(CONCAT('%',#{com_name}),'%') </if> <if test="check_begin_date!=null and check_begin_date!=''"> <![CDATA[ and DATE_FO

mybatis查询结果为空时的返回值问题

先贴出配置文件 <select id="queryUserGroupByName" resultType="UserGroupModel"> select * from user_group where roleName='user' and groupName=#{groupName} </select> 对应的mapper List<UserGroupModel>queryUserGroupByName(String grou

python datetime 写入mysql datetime类型

最近有个python项目需要更新mysql时间,类型是datetime,参考了网上的建议,将时间转为字符串再写入数据库. def toMysqlDateTime(): dt=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")    return dt

Java 如何存取MySQL datetime类型

1 在java中只有Date类型,这样数据存储到MySQL会出现问题,前台提交的数据,比如2018-03-20 17:30:59,后台用Date接受的时候,由于Date只精确到天,所以默认接收时间为2016-10-10 00:00:00,保存到mysql数据库之后,重新取出数据的时候又会发现,数据为2018-03-20 00:00:00.0,无缘无故在后面多了一个.0. 2 解决方法 ① 提取数据 如果要从MySQL中获取yyyy-MM-dd HH:mm:ss 日期格式,首先必须使用 rs.ge

First-blog:解决mybatis 用mysql进行模糊搜索时,查不了中文问题

如图:点击小字 按搜索时,出现乱码搜索不了 解决办法:出现乱码问题,一般无非两种 1.是数据库问题 2.是服务器问题 我在MySQL命令行搜索时,中文可以实现,说明时服务器问题 通过修改 tomcat 下 cof 文件夹里的 service文件,在 <connecter 尾端添加 URIEncoding="UTF-8"/> 问题解决 原文地址:https://www.cnblogs.com/coldfirecx/p/9830248.html

金蝶KIS新建账套时 从字符串向DateTime转换时失败 从字符串转换为Datetime类型时发生语法错误

需要修改以下几点 控制面板---区域和语言选项---区域选项---自定义,修改为如下格式

【mybatis】mybatis 查询mysql 长编码的查询使用 正向查询和反向查询

示例代码: <select id="findUidByLongCode" resultType="java.lang.String"> SELECT uid FROM goods_type WHERE #{longCode} LIKE concat('%',long_code,'%') </select> <select id="findUidByLongCodeDown" resultType="java

Newtonsoft.Json 转换DateTime类型为字符串时,串内部会有一个T。解决方案

使用Newtonsoft.Json 转换DateTime类型时,若使用标准转换,则字符串内会有一个T(虽然再转换成DateTime没有问题). 若要转换成DateTime没有T,可以加上特性: 1 public class TestClass 2 { 3 public TestClass() 4 { 5 Dt1 = Dt2 = new DateTime(1900, 1, 1, 0, 0, 0); 6 } 7 8 [JsonConverter(typeof(TcDateTimeConverter)