sql - MySQL:如何为所有时区选择 UTC 偏移量和 DST?

标签 sql mysql timezone

我想要mysql时区表中所有时区的列表,需要选择:

1) 他们当前与 GMT 的偏差
2) 该时区是否使用夏令时(不是当前是否正在使用,只是在该时区一年中的某个时间点是否考虑夏令时)

原因: 我需要构建一个 Web 表单并将用户时区信息(我可以从 javascript 生成)与存储在 mysql 数据库中的正确时区相匹配。我可以找到 UTC 偏移量并从 javascript 函数中获取 DST 标志。

最佳答案

试试这个查询。偏移时间是 (Offset/60/60)

SELECT tzname.`Time_zone_id`,(`Offset`/60/60) AS `offsettime`,`Is_DST`,`Name`,`Transition_type_id`,`Abbreviation`
FROM `time_zone_transition_type` AS `transition`, `time_zone_name` AS `tzname`
WHERE transition.`Time_zone_id`=tzname.`Time_zone_id`
ORDER BY transition.`Offset` ASC;

结果是

501 -12.00000000    0   0   PHOT    Pacific/Enderbury
369 -12.00000000    0   0   GMT+12  Etc/GMT+12
513 -12.00000000    0   1   KWAT    Pacific/Kwajalein
483 -12.00000000    0   1   KWAT    Kwajalein
518 -11.50000000    0   1   NUT Pacific/Niue
496 -11.50000000    0   1   SAMT    Pacific/Apia
528 -11.50000000    0   1   SAMT    Pacific/Samoa
555 -11.50000000    0   1   SAMT    US/Samoa
521 -11.50000000    0   1   SAMT    Pacific/Pago_Pago
496 -11.44888889    0   0   LMT Pacific/Apia
528 -11.38000000    0   0   LMT Pacific/Samoa
555 -11.38000000    0   0   LMT US/Samoa
521 -11.38000000    0   0   LMT Pacific/Pago_Pago
518 -11.33333333    0   0   NUT Pacific/Niue
544 -11.00000000    0   3   BST US/Aleutian
163 -11.00000000    0   3   BST America/Nome
518 -11.00000000    0   2   NUT Pacific/Niue
496 -11.00000000    0   2   WST Pacific/Apia
544 -11.00000000    0   0   NST US/Aleutian
163 -11.00000000    0   0   NST America/Nome
528 -11.00000000    0   4   SST Pacific/Samoa
528 -11.00000000    0   3   BST Pacific/Samoa

关于sql - MySQL:如何为所有时区选择 UTC 偏移量和 DST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702873/

相关文章:

mysql - 带有 MySql 或 SqlExpress 的 ASP.NET?

java - 如何解析日期时间并将其与相应的时区关联

mysql - SELECT *, sum() 等式仅返回一行

sql - ORA-01847 月份中的某一天必须介于 1 和月份最后一天之间 - 但数据正常

android - SQLite Random() 在 ORDER BY 中排序不正确

ruby-on-rails - Rails 2.3.5 中的夏令时计算不正确?

javascript - 如何在 javascript 中使用 Google map 提示用户输入位置?

sql - 对于具有 NULL 值的硬编码列,ISNULL 返回 0

mysql - 如何在 php 中从 mysql 查询中拆分值

mysql - php mysql 存储过程示例