mysql - 根据每个用户调整时区和夏令时

标签 mysql api

我正在开发一个应用程序,用户将他们的时区存储在 SQL 数据库中。

当他们的位置实行夏令时时,我如何跟踪?

我正在考虑在用户表中有一列包含用户指定的时区,然后在另一个表中将用户时区与其相对于 UTC 的相应间隔位移进行匹配

但是我该如何编写一个脚本来自动更改实行夏令时的地方的偏移设置呢?甚至有些地方有时有夏令时,有时则没有。

我应该使用 API 吗?如果有,是哪一个?

我的方法明显错误吗?

谢谢

最佳答案

您正在重新发明轮子。

MySQL 服务器具有内置时区处理功能,包括从系统时区表“知道”何时何地是夏令时(或不是夏令时)的能力。

http://dev.mysql.com/doc/refman/5.6/en/time-zone-support.html

CONVERT_TZ() function嵌入在查询中,会将日期时间从当前时区(您指定的)转换为另一个时区(用户的时区)。

How do i update this table when time chages due to daylight savings

你不知道。如果您为用户选择了正确的时区,则会自动处理夏令时转换。

例如,将冬令时和夏令时从 UTC 转换为美洲/纽约时区(东部标准/东部夏令时)。请注意 5 小时(冬季)与 4 小时(夏季)的偏移量:

mysql> select convert_tz('2015-01-01 00:00:00','UTC','America/New_York');
+------------------------------------------------------------+
| convert_tz('2015-01-01 00:00:00','UTC','America/New_York') |
+------------------------------------------------------------+
| 2014-12-31 19:00:00                                        |
+------------------------------------------------------------+
1 row in set (0.01 sec)

mysql> select convert_tz('2015-06-01 00:00:00','UTC','America/New_York');
+------------------------------------------------------------+
| convert_tz('2015-06-01 00:00:00','UTC','America/New_York') |
+------------------------------------------------------------+
| 2015-05-31 20:00:00                                        |
+------------------------------------------------------------+
1 row in set (0.00 sec)

关于mysql - 根据每个用户调整时区和夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467018/

相关文章:

在工作和家庭计算机上同步 Mysql

MySQL 查询消耗的 CPU 使用率是正常 CPU 使用率的 5-6 倍

php - mysql_fetch_assoc 不返回任何内容(不是 null、不是 0、不是 "")

javascript - 必应视频搜索 API 401 : Access denied due to missing subscription key

python - Wagtail API - 如何排除字段?

php - 显示来自 MySQL 的 PNG 图像

jquery - 我们可以将 mysql 与 node.js 一起使用吗

javascript - 将一周中的几天放入列表中,然后重新开始

c# - Web API Get 方法参数中的多个 NULL 值

api - Youtube 数据 API 版本 3 分页