`
flyfox1982
  • 浏览: 81036 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个时区问题引发的血案

 
阅读更多

近期有客户反馈了一个问题,在使用ERP 2BizBox的过程中,发现如下问题:

在查看财务模块的报表损益表的时候,修改时间参数,损益报表的数据没有改变。

经过多方查证,最终发现2BizBox 本身的查询并没有问题,而是由于客户修改了系统的默认时区导致的。

具体是什么问题,请听我细细道来:

2BizBox在处理损益表的查询的时候,由于涉及到了多个表的查询,应该算是一个比较重的查询,所以会首先从多个表里面把数据查询下来,并缓存在一个临时表里面;这样下次在查询的时候,会有一个查询时间间隔的判断,如果本次的查询时间比上一次查询的时间大的数值间隔小于3秒,就会从临时表里面直接取出数据,这样处理是为了防止同一个用户同时多次查询,给系统造成负担。上一次的查询时间保存在数据库的,本次查询时间就是系统的当前时间,这样在正常的系统是可以稳定的执行的。那么如果服务器操作系统与数据的时区设置不一致的时候,就会有可能导致本次查询的时间反而小于上次查询时间,应此就会从临时表里面去取数据,而不会更新临时表的数据。

比如数据库的时区是CSTUTC -6 hours),操作系统时区:CDTUTC -5 hours),这样就会导致系统的时间数据库的时间一个小时。这样如果在一次查询之后,在改变查询参数的时候,如果相隔的时间在一个小时之类,都不会更新数据,所以就出现了改变查询参数而报表数据不变的情况。

解决的方法当然就很简单:把mysql的时区和系统时区调整成一致。

分享到:
评论

相关推荐

    java的时区问题

    Java的时区问题是一个复杂而重要的主题,尤其是在全球化的软件开发中。时区涉及到日期、时间的计算,以及与特定地理位置相关的夏令时调整。Java提供了丰富的时区支持,但理解其工作原理对于开发出正确处理时间的软件...

    查找,添加,删除时区问题

    在IT行业中,时区问题是一个重要的议题,尤其是在全球化的今天,多时区的协作和通信变得日益频繁。本文将深入探讨“查找,添加,删除时区问题”这一主题,主要涉及以下几个方面: 首先,理解时区(Time Zone)的...

    javascript 解决网站时区问题

    默认情况下,`new Date()`将创建一个表示当前日期和时间的对象,但并不考虑时区。 要获取用户所在的时区,JavaScript提供了`Date.prototype.getTimezoneOffset()`方法。这个方法返回一个以分钟为单位的负值,表示...

    打开时间设置提示“无法识别您当前的时区,请选择一个有效的时区”解决方案.rar

    在使用Windows操作系统时,有时会遇到一个常见的问题,即当你尝试调整系统时间或日期时,系统弹出警告提示:“无法识别您当前的时区,请选择一个有效的时区”。这个问题通常是由于注册表中的某些关键设置丢失或错误...

    java时区问题

    Java时区问题是一个在开发过程中常见的困扰,尤其是在处理与日期时间相关的业务时。Java通过`java.util.TimeZone`类来管理全球不同的时区信息。时区是地球上的地理位置,它决定了本地时间与协调世界时间(UTC)之间...

    解决 Win 7 无法显示完整时区的问题

    附件中的“时区.reg”文件是一个包含修复时区问题所需关键注册表项的文件。导入这个文件可以将正确的时区信息写入到注册表中,从而解决上述故障。 导入注册表文件的步骤如下: 1. 右键点击“时区.reg”文件,选择...

    WIN7系统时区 大全

    为了解决这个问题,我们有这样一个压缩包文件,其中包含三个注册表文件:时区1.reg、时区2.reg和时区3.reg,它们的目的就是补充和完整系统的时区选项。 首先,我们要理解注册表在Windows操作系统中的作用。注册表是...

    系统时间注册表,修正JAVA Eclipise时区问题

    用户的测试机安装的win7,测试时发现时间总是差8个小时。...有一个键值MapID=-1,75”,少了MapID、Index键。 导入本压缩包中国时区注册表.reg 解决2003 WIN7 时区问题。 再有疑问联系,CSDN:lawsystem

    时区设置代码-一个完整的C++类

    本文将深入探讨“时区设置代码-一个完整的C++类”的相关知识点,包括`SetTimeZoneInformation`函数的使用、注册表操作以及如何在C++中实现这些功能。 `SetTimeZoneInformation`是Windows API提供的一个函数,用于...

    补全win7时区设置

    在本案例中,我们有一个名为"时区补全.reg"的文件。这实际上是一个注册表脚本文件,用于导入新的时区信息到系统的注册表中。要使用这个文件,你需要按照以下步骤操作: 1. **安全提示**:在执行任何对注册表的操作...

    C#修改Windows时区

    2. **创建新的时区信息**:如果你想要改变时区,你需要创建一个新的`TimeZoneInformation`实例,包含你想设置的新时区信息。这包括标准名称、夏令时规则等。 3. **提升权限**:在调用`SetSystemTime()`之前,你需要...

    时区不正确问题1

    在IT行业中,尤其是在服务器部署和应用开发中,时区问题是一个常见的困扰。当你的系统时间不正确时,可能会导致各种意想不到的问题,...在实际操作中,务必仔细检查并测试每一个步骤,以避免因时区问题引发的潜在错误。

    java转换时区时间过程详解

    Java时区时间转换是指将一个时区的时间转换成另一个时区的时间,这个过程需要了解时区的概念和计算方法。在本文中,我们将详细介绍时区的概念、UTC时间、格林尼治时间、夏令时、区时转换等知识点,并提供Java代码...

    解决Docker容器时区及时间不同步问题的方法

    今天在系统集成测试时由测试人员提交了一个测试bug,原因是提交业务数据时间与实际时间(北京时间)有偏差,导致统计异常。由于我们集成测试是向测试人员直接提供完整的Docker镜像作为测试环境,原因应该是出在容器...

    android自动修改时区(原创)

    本教程将详细讲解如何创建一个服务(Service),使其能够在后台运行,根据预设的时间范围自动切换时区。 首先,我们需要了解Android中的时区管理。Android系统使用`java.util.TimeZone`类来处理和设置时区。这个类...

    docker中时区问题的处理方法

    这段Dockerfile代码不仅设置了TZ环境变量,还创建了一个软链接,确保`/etc/localtime`指向正确的时区文件,并写入`/etc/timezone`以记录当前时区。 总结来说,处理Docker容器的时区问题,关键是理解和利用glibc的TZ...

    c# 获取设置时区SetTimeZoneInformation

    `SetTimeZoneInformation` API是一个Windows API函数,它允许程序修改系统时区。虽然C#本身提供了.NET框架来处理日期和时间,但若需要底层控制,如在没有用户交互的情况下改变系统时区,就需要使用这样的API。 `...

    Linux修改时区和时间

    一、修改时区 时区的设置对系统的时间戳和日期的正确性产生重要影响。在 Linux 系统中,时区的设置可以通过手动修改时区文件或使用图形化命令实现。 1. 手动修改时区:可以通过找到相应的时区文件 /usr/share/...

    java.util.TimeZone 的世界时区列表

    `java.util.TimeZone` 是Java标准库中的一个类,用于表示不同时区的信息。本文档提供了通过`java.util.TimeZone`类导出的世界范围内时区列表。该列表不仅包括了各大洲的主要城市和地区,还涵盖了特殊地区与时区调整...

    显示中国农历, 公历日期和多个时区的时钟

    标题中的“显示中国农历, 公历日期和多个时区的时钟”指的是一个软件功能,这个功能结合了中国的农历日期、公历日期以及不同时区的时钟展示,为用户提供了一个全面的时间管理工具。在中国,农历对于传统节日和一些...

Global site tag (gtag.js) - Google Analytics