mysql jdbcUrl中的serverTimezone

本文详细解析了在使用Java代码连接MySQL数据库时遇到的时间查询异常问题。通过对比本地与测试环境,发现jdbc-url中缺少serverTimezone参数,导致时间数据转换不一致,从而无法查询到数据。添加serverTimezone=PRC参数后,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般我们在配置mysql数据库的时候

都是四个参数

 driver-class-name: com.mysql.cj.jdbc.Driver
 jdbc-url:  
 username:  
 password: 

这次在开发的时候遇到了一个非常奇怪的问题
在本地测试的时候 好好的,到测试环境上面就取不到数据,多次检查下来 感觉到是jdbc 的url 出现了问题,
在navicat中可以查到数据,但是通过java代码就是不可以查到数据.

jdbc 的url 是可以在后面添加参数的

一般的参数都是如下:

 useUnicode=true&characterEncoding=utf8

就是简单的指定下连接的字符集

,通过多次调试 ,对比最终发现,是因为一个参数的原因导致的

在jdbcurl 后面加上下面的参数即可:

serverTimezone=PRC

分析:

为什么之前就查不到数据了?一加上这个后缀就可以查到

因为我的sql 中有类似于 where time=xxx ,如果不加上上面的这个参数,mysql把接收到的时间数据转换一下,
也就是说你传过去的时间跟 mysql 接收到 放到查询条件的时间 应经不是同一个时间了,所以就导致了查询没有数据的情况发生了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值