往数据库里插入时间数据时,时间自动减少了14h
2017-12-12 16:02
302 查看
问题描述:
使用springmvc作为框架,往数据库里插入(更新)数据时,发现时间格式的数据自动减少了14小时。
比如:我INSERT INTO test_table (id, name, birthday) VALUES(1, 'chen', '2017-12-12 15:00:00')
通过代码插入到数据库后,发现birthday字段的时间并不是'2017-12-12 15:00:00',而是'2017-12-12 01:00:00'。
(注:在MySQL中直接执行:INSERT INTO test_table (id, name, birthday) VALUES(1, 'chen', '2017-12-12 15:00:00');是正确的)
问题解决:
碰到这个问题,我第一个直觉是时区的问题,但是不知道怎么下手,只能一个一个去尝试。
首先我先看了下服务器端的时区,date -R,显示的时区是正确的;
然后我查看了MySQL所用的时区:SHOW VARIABLES LIKE '%time_zone%'
查询结果如下:
system_time_zone CST
time_zone SYSTEM
是跟系统的时区一样的。
说明MySQL数据库本身的配置没有问题,那么就是程序本身的配置问题了。
但是我将自己的项目和先前的项目配置进行了对比,并没有发现不一样的地方。
百度过程中看到一篇博文:https://segmentfault.com/q/1010000010791397
发现我和他发生的情况一样,我使用的也是新版6.0驱动,但是我的MySQL的版本是5.5.52-MariaDB。
我原先的配置如下:
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://192.168.164.129\:3306/test?useSSL\=false&useUnicode\=true&characterEncoding\=utf8&autoReconnect\=true
然后在路径后面添加了&serverTimezone\=Hongkong
修改后如下:
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://192.168.164.129\:3306/test?useSSL\=false&useUnicode\=true&characterEncoding\=utf8&autoReconnect\=true&serverTimezone\=Hongkong
重新测试代码,发现以上bug解决了。
参考的其它博文:http://blog.csdn.net/qq631431929/article/details/51731834
时区简绍:http://blog.sina.com.cn/s/blog_a72ec20c0101jgxd.html
使用springmvc作为框架,往数据库里插入(更新)数据时,发现时间格式的数据自动减少了14小时。
比如:我INSERT INTO test_table (id, name, birthday) VALUES(1, 'chen', '2017-12-12 15:00:00')
通过代码插入到数据库后,发现birthday字段的时间并不是'2017-12-12 15:00:00',而是'2017-12-12 01:00:00'。
(注:在MySQL中直接执行:INSERT INTO test_table (id, name, birthday) VALUES(1, 'chen', '2017-12-12 15:00:00');是正确的)
问题解决:
碰到这个问题,我第一个直觉是时区的问题,但是不知道怎么下手,只能一个一个去尝试。
首先我先看了下服务器端的时区,date -R,显示的时区是正确的;
然后我查看了MySQL所用的时区:SHOW VARIABLES LIKE '%time_zone%'
查询结果如下:
system_time_zone CST
time_zone SYSTEM
是跟系统的时区一样的。
说明MySQL数据库本身的配置没有问题,那么就是程序本身的配置问题了。
但是我将自己的项目和先前的项目配置进行了对比,并没有发现不一样的地方。
百度过程中看到一篇博文:https://segmentfault.com/q/1010000010791397
发现我和他发生的情况一样,我使用的也是新版6.0驱动,但是我的MySQL的版本是5.5.52-MariaDB。
我原先的配置如下:
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://192.168.164.129\:3306/test?useSSL\=false&useUnicode\=true&characterEncoding\=utf8&autoReconnect\=true
然后在路径后面添加了&serverTimezone\=Hongkong
修改后如下:
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://192.168.164.129\:3306/test?useSSL\=false&useUnicode\=true&characterEncoding\=utf8&autoReconnect\=true&serverTimezone\=Hongkong
重新测试代码,发现以上bug解决了。
参考的其它博文:http://blog.csdn.net/qq631431929/article/details/51731834
时区简绍:http://blog.sina.com.cn/s/blog_a72ec20c0101jgxd.html
相关文章推荐
- JDBC批处理-大量数据插入数据库减少插入时间
- 向数据库插入数据、修改数据时自动生成时间以及自动修改时间
- Android sqlite插入一条数据时,时间自动写入数据库
- sql server 随机数、随机时间模拟数据插入数据库
- 【已解决】MySQL建表,插入数据时,时间自动更新至秒
- thinkphp 在数据库更新(save)的时候,如果字段没有被修改,会更新失败 和数据的自动验证,插入的时候可以自动验证,但更新的时候就不能验证了
- VB.Net实现将文本文件中的数据自动插入数据库的小工具
- oracle向数据库中插入时间数据
- 关于事务开启与否对数据库插入数据所需时间的影响的讨论
- XCode使用记录—使用XCode自动向数据库插入测试数据
- 诡异的隔断时间再次自动插入数据
- 当向数据库插入数据的同时返回插入数据的编号(自动生成的编号)
- hibernate教程4之自动创建数据库表以及插入数据
- Java 往数据库插入时间格式的数据
- 数据库中关于datetime、date 、time数据类型比较,及插入日期时间数据格式
- ibatis 数据库时间 插入数据
- Yii Framework中插入时间类型数据到数据库
- ibatis 数据库时间 插入数据
- [原]ibatis 数据库时间 插入数据
- JPA学习笔记---JPA实体Bean的建立+配置文件+junit测试+自动生成(对应实体Bean的)数据库表+插入数据