反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

报表工程查询数据与数据库数据时间相差8小时

  • 文档创建者:Wendy123456
  • 历史版本:7
  • 最近更新:Wendy123456 于 2021-11-11
  • 1. 概述

    1.1 问题描述

    用户的外接数据库为 MySQL 数据库,日期字段的类型是 datetime 。Navicat 查看的日期数据和数据预览数据相差 8 小时。

    1.2 关于时区

    • CST:中国标准时间。

    • GMT (Greenwich Mean Time):格林威治标准时间,指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。

    • UCT (Universal Time Coordinated):世界标准时间。

    GMT + 8 = UTC + 8 = CST 。

    1.3 解决思路

    排查顺序:系统时区>数据源时区>Tomcat时区。

    1)确认服务器系统时间和数据库系统时间相同,例如都为东八区。

    2)使用数据库小工具连接取数,查询出的时间与 Navicat 一致,判断是数据源和报表工程时区不同。

    3)参考本文第三章节内容,修改数据源时区。

    4)若 Tomcat 时区不正确,报表平台中查看到的日志时间也会是不正确的,参考本文第四章内容,修改 Tomcat 时区;若日志时间正确,则无需修改 Tomcat 时区。

    2. 系统时区

    2.1 Linux 系统

    2.1.1 查看当前时区

    使用date -R查看Linux 查看当前时区,如下图所示:

    1613635002946291.png

    2.1.2 方案一:修改此次登录时区

    方法对应语句
    方法一:修改 Linux 当前时区tzselect
    方法二:仅限于 RedHat Linux 和 CentOStimeconfig

    tzselect语句为例,如下所示:

    1)输入tzselect修改当前时区,如下图所示:

    1613636188815381.png

    2)输入TZ='Asia/Shanghai';export TZ使时区生效,如下图所示:

    8.png

    2.1.3 方案二:永久修改时区

    TZ='Asia/Shanghai';export TZ添加到/home/username/.profile文件中,然后重新登录即可。

    注:.profile 文件默认隐藏,需要使用 ls -a 才能看到。

    1613699692530899.png

    2.2 Windows 系统

    找到日期和时间,即可修改时区。如下图所示:

    1613636994416734.png

    3. 数据源时区

    在定义数据连接的 URL 后,添加参数,将数据源的时区设置为东八区。如下图所示:

    &useTimezone=true&serverTimezone=GMT%2B8

    1613637466611872.png

    4. Tomcat 时区

    若 Tomcat 时区不正确,报表平台中查看到的日志时间也会是不正确的,若日志时间正确,则无需修改 Tomcat 时区,本章提供修改 JDK1.8(Tomcat) 时区的方法。

    4.1 Linux 系统

    1)编辑%Tomcat_HOME%\bin目录下的 catalina.sh,添加 JAVA_OPTS 参数,将数据源的时区设置为东八区:

    JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT+08"

    12.png

    2)重启工程。

    4.2 Windows 系统

    1)编辑%Tomcat_HOME%\bin目录下的 catalina.bat,添加 JAVA_OPTS 参数,将数据源的时区设置为东八区:

    set JAVA_OPTS=%JAVA_OPTS% -Duser.timezone=GMT+08

    13.png

    2)重启工程。

    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526