bitsCN.com
mysql一个时区引发的问题 近期有客户反馈了一个问题,在使用ERP 2BizBox的过程中,发现如下问题: 在查看财务模块的报表损益表的时候,修改时间参数,损益报表的数据没有改变。
经过多方查证,最终发现2BizBox 本身的查询并没有问题,而是由于客户修改了系统的默认时区导致的。 具体是什么问题,请听我细细道来: 2BizBox在处理损益表的查询的时候,由于涉及到了多个表的查询,应该算是一个比较重的查询,所以会首先从多个表里面把数据查询下来,并缓存在一个临时表里面;这样下次在查询的时候,会有一个查询时间间隔的判断,如果本次的查询时间比上一次查询的时间大的数值间隔小于3秒,就会从临时表里面直接取出数据,这样处理是为了防止同一个用户同时多次查询,给系统造成负担。上一次的查询时间保存在数据库的,本次查询时间就是系统的当前时间,这样在正常的系统是可以稳定的执行的。那么如果服务器操作系统与数据的时区设置不一致的时候,就会有可能导致本次查询的时间反而小于上次查询时间,应此就会从临时表里面去取数据,而不会更新临时表的数据。 比如数据库的时区是CST(UTC -6 hours),操作系统时区:CDT(UTC -5 hours),这样就会导致系统的时间数据库的时间一个小时。这样如果在一次查询之后,在改变查询参数的时候,如果相隔的时间在一个小时之类,都不会更新数据,所以就出现了改变查询参数而报表数据不变的情况。 解决的方法当然就很简单:把mysql的时区和系统时区调整成一致。 作者 netcy bitsCN.com
0
0
相关文章
mysql如何实现访问统计_mysql分析项目入门
mysql中GROUP BY语句分组统计的基本用法
mysql中JOIN查询的索引优化策略
mysql错误日志是什么_mysql问题排查基础
什么是脏读_mysql事务异常解释
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
C++ 设计模式与软件架构
本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。
14
2026.01.30
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程








