查询页面展示时间比数据库少8个小时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询页面展示时间比数据库少8个小时相关的知识,希望对你有一定的参考价值。

数据库时区是CST +8 但是页面查询时间还是少8个小时

mysql数据库创建后。默认的时区比东八区少了八个小时。如果sql语句中使用到mysql的时间的话就会比正常时间少了八个小时。所以需要修改mysql的系统时区。
set global time_zone = '+8:00';设置时区更改为东八区

flush privileges; 刷新权限
参考技术A 在catalina.sh中增加如下配置:JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai"追问

没用使用tomcat 用的docker容器启动的服务

查询 SQL 时,传递给查询的时间比我设置的时间少 2 小时。为啥?

【中文标题】查询 SQL 时,传递给查询的时间比我设置的时间少 2 小时。为啥?【英文标题】:When querying SQL, time that passed to query is less 2 hours of the time I set. Why?查询 SQL 时,传递给查询的时间比我设置的时间少 2 小时。为什么? 【发布时间】:2018-02-09 12:22:51 【问题描述】:

请指教。 使用 ExtJS 和 Oracle SQL。情况是这样的: 我必须在两个日期dateFromdateTo 之间从数据库获取文件。 我的dateTo 设置为当天结束,例如 2018-02-09 23:59:59。

let dateTo = new Date()    
dateTo = Ext.Date.clearTime(dateTo);
dateTo.setHours(23, 59, 59, 999);

当我查询时,过去的日期都比我设置的日期少 2 小时(2018-02-09 21:59:59)。为什么会发生这种情况,有人?是因为这个 GMT+2 业务吗? capture1.png 来自 SQL 查询,capture2.pngconsole.log(dateTo) 以及如何治愈它。 非常感谢!

【问题讨论】:

可能是由于白天保存 看起来您提供的日期正在从本地时区转换为 UTC,是的。没有看到 setHours() 和 SQL 调用之间发生了什么,不知道在什么时候。可能与getTime() always giving UTC?有关 Alex,DB 调用在我将时间设置为 23:59:59 之后紧随其后。想知道如何防止它减去 2 小时。我是对的,在目前的情况下,我只从 DB 获取到 21:59:59 的文档?干杯 数据库中列的数据类型是什么? 您的 ExtJS 前端是否直接与数据库通信?当我偶然发现同样的问题时,问题既不在前端也不在数据库中,而是在后端逻辑中(你不说你用的是什么:C#、PHP、JSF...)...... C# 使用的地方奇怪的DateTimeKind 设置。 【参考方案1】:

通过减去 GMT Diff 来计算日期

gmtDiff = Ext.Date.format(dateTo, 'Z') * 1000

然后看结果:

Ext.Date.format(dateTo, 'Y-m-d H:i:s')

【讨论】:

以上是关于查询页面展示时间比数据库少8个小时的主要内容,如果未能解决你的问题,请参考以下文章

查询 SQL 时,传递给查询的时间比我设置的时间少 2 小时。为啥?

Solr 17 - Solr的时间为什么比本地少8小时(附修改方法)

在MongoVUE中发现插入的时间和实际的时间相差8小时?

mysql 8小时问题

springboot时间少8个小时的处理方法

PHP获取时间比实际时间少8小时的问题