问题标签 [convert-tz]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1408 浏览

mysql - 为什么 MySQL CONVERT_TZ 改变时区调整后的秒数?

我在 MySQL 中存储 UTC 日期时间值。我使用 CONVERT_TZ 来处理时区转换,以在数据库中查询/保存本地日期时间到/从 UTC。

经过测试,我注意到转换工作方式的这种奇怪特性。谁能解释为什么 MySQL 在使用 -4:00 小时偏移时增加了 23 秒,但在使用等效时区标签时却没有?

我在我的 Windows XP 笔记本电脑上运行 MySQL 5.0.67-community-nt-log。我正在从本地托管的 phpMyAdmin 3.1.5 运行查询,我也可以在我自己的 PHP 5.2.8 应用程序中看到它。

与我的 Dreamhost 帐户相比,两个查询都返回正确的日期时间('2009-09-06 21:00:00')。他们在 Linux 和 PHP 5.2.6 上运行 MySQL 5.0.45-log。

为什么我自己安装的 MySQL 会有这种差异?

0 投票
1 回答
2073 浏览

mysql - MySQL在某些时区显示错误的时间

我正在使用 MySQL 5.1.34 社区服务器。我从这里获取了 MySQL 时区描述表。

现在对于某些时区,MySQL 显示的时间是错误的,因为这些时区的“夏令时”计算错误。

例如:查询

给出错误的结果。

以下时区显示错误的时间:

但是对于所有其他时区(上述时区除外),“夏令时”计算是完美的,它显示了正确的时间。

我在这里想念什么?更新到更高版本的 MySQL 会有所帮助吗?

0 投票
6 回答
134875 浏览

mysql - MySQL 可以将存储的 UTC 时间转换为本地时区吗?

MySQL 可以直接在普通的 select 语句中将存储的 UTC 时间转换为本地时区时间吗?

假设您有一些带有时间戳 (UTC) 的数据。

然后当我

我当然会以存储的 UTC 形式获取所有日期。

但是假设我想让它们在另一个时区(使用 DST),然后我可以在选择查询中添加一些魔法,以便我在所选时区中获取所有日期吗?

还是我必须在顶部的其他层中执行此操作,例如在某些 php 代码中?(这似乎是大多数人解决这个问题的方式)。


如果您的 MySQL 安装允许您使用 CONVERT_TZ 这是一个非常干净的解决方案,这个例子展示了如何使用它。

但是我不知道这是否是一个好方法,因为某些 MySQL 安装缺少此功能,请谨慎使用。

0 投票
9 回答
67700 浏览

mysql - MySQL 查询当前 GMT 时间

这听起来很简单,但我无法弄清楚如何使用简单的 SELECT 语句以 GMT 形式返回当前时间。

我一直在尝试使用CONVERT_TZ()根据服务器时区和 GMT 时区将 NOW() 转换为 GMT,但由于某种原因,当我输入文本时区时它返回 NULL。我得到结果的唯一方法是实际输入偏移量,这对于一个非常简单的操作来说太复杂了。这就是我的意思:

我只需要一个简单的查询来返回格林威治标准时间的当前时间。在此先感谢您的帮助!

0 投票
3 回答
85639 浏览

mysql - MySQL CONVERT_TZ()

我正在尝试建立一个数据库来存储用户指定的每日警报时间。例如,用户希望在每天早上 7:00 到早上 7:30 之间满足某些条件时收到警报。在尝试实现这一点时,我需要适应夏令时。这是我尝试的解决方案:

  1. 将用户本地时区(长格式,例如“美国/东部”)信息存储在一个表中(例如 userInfo),并将警报时间存储在另一个表中(例如 userAlarms)。
  2. 查询 userAlarms 表时,将 UTC 时间转换为用户本地时间,由存储在 userInfo 表中的 tz 列通过CONVERT_TZ(UTC_TIME(), 'UTC', userInfo.tz).

问题 1. 据我了解,指定时区名称(如美国/东部)考虑夏令时。例如,CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN')在 1 月 1 日调用应该产生“19:00:00”,但在 7 月 1 日调用应该产生“20:00:00”。我对么?

问题 2. 如果 Q1 正确,我是否需要不断更新 MySQL 的时区表以保持时区 UTC 偏移量是最新的?

问题 3. MySQL 文档中给出的示例在我的服务器上运行时会SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')产生“ ”。NULL这可能是由于没有设置时区表造成的吗?

我怎样才能检查这个?

0 投票
4 回答
1656 浏览

mysql - SQL 时间问题 - 需要提前 6 小时

可能重复:
在 MySQL 中将 2 小时添加到当前时间?

我的服务器目前基于我们东部时间,因为我在英国,所以我需要提前 6 个小时。

在 mysql 中使用NOW()时,我得到了错误的时间,有什么可以添加以NOW()将其提前 6 小时吗?谢谢

0 投票
3 回答
3846 浏览

mysql - grails/mysql 时区更改

完成更改应用程序时区的最佳方法是什么?我看到它的方式必须发生以下情况:

  1. 服务器 TZ 由系统管理员更改
  2. mysql 必须重新启动。
  3. 数据库中每次基于时间的列都必须使用 convert_tz 或等效方法更新所有值。因此,要么必须编写 mysql 脚本,要么必须编写一个 grails 脚本,为每个类加载每一行,更新所有时间字段。

显然,在发生这种情况时应该关闭服务器,并且备份必须到位以防出现错误。

有没有更好/更简单的方法来做到这一点?

0 投票
1 回答
6988 浏览

php - MySQL默认时间格式是UTC还是GMT?

嗨,我对这个 UTC 和 GMT 感到很困惑

我在 MySQL 表中插入前列“event_date”,如“2010-07-01 23:50:00”(日期时间)我的客户在前端询问一个选项为 GMT +1 GMT +2 GMT -1 GMT -2 ...等等,如果我选择任何选项 GMT +2,event_date 将根据 GMT +2 过滤/列出。

我不知道如何继续,谷歌搜索后我发现了这个

以及它是否运作良好,我的客户给了我一个示例 URL 来检查这样

http://www.forexpros.com/economic-calendar/

我正在使用 drupal 节点

提前致谢,

戈壁

0 投票
4 回答
6173 浏览

mysql - 在MySql中检测日期是否处于夏令时

我继承了一个遗留应用程序,其中所有日期和时间都存储在本地时区(英国)中。我无法更改它们的存储方式。

但是,要求是在应用程序中以 GMT 显示所有日期。因此,当我从数据库中检索事件列表时,我需要它以这种时间格式显示它们,同时观察每个特定事件日期是否正在运行夏令时。使用以下逻辑,我可以确定查询中是否启用了夏令时:

然而,这显然只是检查它正在运行的日期。因此,未来任何跨越夏令时边界的事件都不起作用。

有没有一种方法可以检测给定日期是否在 mysql 查询本身的 DST 中?

任何帮助,非常感谢。

0 投票
2 回答
215 浏览

mysql - 仅在日期和时间上进行时区转换 - 有必要吗?

我们一直致力于为我们的 Web 应用程序实现时区支持。

这篇很棒的 SO 帖子帮助了我们很多: 夏令时和时区最佳实践

我们已经在 MYSQL 中实现了 OLSON TZ 数据库,并将其用于 TZ 转换。

我们正在构建一个调度应用程序,以便:

我们将在 UTC 时间的特定日期和特定时间发生的所有预订存储在 DateTime 字段中,并使用CONVERT_TZ(). 这很好用。

我们不太确定的是假期和休息之类的东西:

假期只是日期参考,不包括时间部分。因为CONVERT_TZ()不适用于日期对象,我们猜测我们最好只根据用户的时区存储日期值?

一周中的每一天存储期间的重复中断也是如此。我们目前为一周中的每一天存储他们的休息时间,索引为 0-6。因为这些只是时间对象,我们不能使用 CONVERT_TZ() 并假设我们应该将它们作为时间值存储在用户的时区中?

在这种情况下,对于假期和休息,我们只会在预订时间转换为用户的本地时间之后将它们与预订时间进行比较。

这是处理事情的正确方法,还是我们应该以其他方式存储假期和休息时间,以便我们可以将它们转换为 UTC(不确定这对于休息时间如何工作)。

感谢你的协助!