当前位置: 首页 > 知识库问答 >
问题:

MySQL时区混乱

彭浩穰
2023-03-14

我几天前发了一个帖子,用了回复中给出的建议。我有一个大型web应用程序,它托管在我们时区的一个服务器上,在那里我使用了当前时区的所有日期时间/时间戳。我应该使用UTC并在代码级别上将其转换为适当的时区。

好吧,我现在正在做,但我有问题。我现在使用的服务器不在我的时区,并且时间戳(插入时)被设置为他们的系统(O/S)时间。而不是UTC时间。

SET time_zone = '+00:00';

这确实令人困惑,因为MySQL自动将数据库中的时间戳转换并显示为当前时区,所以我的所有时间戳都转换并显示为系统时区。而实际上所有时间戳都存储为UTC。所以如果你去:

SET SESSION time_zone = '+00:00'; SELECT * FROM what_ever_table;

它将显示该时区中的时间戳。

共有1个答案

秦凯定
2023-03-14

MySQL在插入/更新值时不关心时区。它看到的只是时间/日期值和字符串。标准日期格式YYYY-MM-DD HH:MM:SS中不包含时区数据。时区仅在您检索数据并希望格式化值时才进入图片,例如使用convert_tz()函数

 类似资料:
  • 问题内容: 我正在运行Tomcat应用程序,并且需要显示一些时间值。不幸的是,时间要花一个小时了。我调查了一下,发现我的默认TimeZone设置为: 而不是太平洋时区。当我尝试打印默认时区的显示名称时,这会进一步指示,并且显示为 “ GMT-08:00”,这似乎向我表明它未正确设置为美国太平洋时区。我在从Gutsy Gibbon升级的Ubuntu Hardy Heron上运行。 我是否可以更新配置

  • 问题内容: 是否有详尽的MySQL时区列表? 似乎MySQL设置中的有效值取决于主机操作系统,但我无法找到可能值的列表。 我需要时间显示卡尔加里当地时间。 问题答案: 从MySQL 5.7文档(重点是我的): 时区值可以多种格式给出,都不区分大小写: 值“ SYSTEM”表示时区应与系统时区相同。 该值可以以字符串形式给出,该字符串指示与UTC的偏移量,例如“ +10:00”或“ -6:00”。

  • 问题内容: 我正在尝试将时区系统集成到我的应用程序中,直到现在为止,我一直在努力避免制作时区感知的应用程序- 但是它是一项强制性要求,因此别无选择。TimeZones只是在我头上。我已经在PHP.net和其他站点(包括但不限于SO)上阅读了多个主题。但是我永远也无法掌握。 因此,我想知道是否有人可以在这里帮助我:(我想要做的是在我的应用程序中使用偏好选项,以允许用户从选择菜单中选择自己的时区,但是

  • 问题内容: 如何将UTC中当前的时区更改为GMT +1,正确的行是什么,我是否只需在phpMyAdmin SQL执行中输入它? 我的房东只是给了我这个链接http://dev.mysql.com/doc/refman/5.1/en/time-zone- support.html 而关闭了,所以我有点迷失了感谢 问题答案: 发出命令: (或GMT + 1所在的任何时区。:http : //www.p

  • Reverb Zones take an Audio Clip and distortionates it depending where the audio listener is located inside the reverb zone. They are used when you want to gradually change from a point where there is

  • (我在UTC 2时区,我假设是2小时的差异)。 我正忙于编写一个JSON RESTful API,它是Grails应用程序的一部分(特别是本项目的2.0.3,但这个问题在其他版本中也会出现)。我使用Jackson对Json进行序列化和反序列化,JsonService的配置如下所示:http://pastebin.com/JacytMuF 因此,多个域对象的值在单个DTO中进行了整理和表示(在本例中