[英]Convert Eastern timezone to UTC
I'm working with a system that records timestamps in local time.我正在使用一个以本地时间记录时间戳的系统。 I'm trying to convert to UTC.
我正在尝试转换为 UTC。 The time offset changes based on whether or not it's currently daylight savings time.
时间偏移会根据当前是否为夏令时而变化。 Right now I'm using the code below to manually check if a given event_ts is in daylight savings time, but it seems like there has to be a better way.
现在我正在使用下面的代码手动检查给定的 event_ts 是否处于夏令时,但似乎必须有更好的方法。
SELECT
IF(DATE(event_ts) BETWEEN '2020-03-08' AND '2020-11-01'
OR DATE(event_ts) BETWEEN '2021-03-14' AND '2021-11-07'
OR DATE(event_ts) BETWEEN '2022-03-13' AND '2022-11-06'
OR DATE(event_ts) BETWEEN '2023-03-12' AND '2023-11-05'
OR DATE(event_ts) BETWEEN '2024-03-10' AND '2024-11-03'
OR DATE(event_ts) BETWEEN '2025-03-09' AND '2025-11-02'
OR DATE(event_ts) BETWEEN '2026-03-08' AND '2026-11-01'
OR DATE(event_ts) BETWEEN '2027-03-14' AND '2027-11-07'
OR DATE(event_ts) BETWEEN '2028-03-12' AND '2028-11-05'
OR DATE(event_ts) BETWEEN '2029-03-11' AND '2029-11-04',
CONVERT_TZ(event_ts, '-04:00', '+00:00'),
CONVERT_TZ(event_ts, '-05:00', '+00:00')) AS 'Timestamp'
FROM events
First, there's a utility program to load a system's IANA timezone data (tzdata) into mysql:首先,有一个实用程序可以将系统的 IANA 时区数据 (tzdata) 加载到 mysql:
https://dev.mysql.com/doc/refman/8.0/en/mysql-tzinfo-to-sql.html
Once you've run that, you can use IANA timezones in CONVERT_TZ:运行后,您可以在 CONVERT_TZ 中使用 IANA 时区:
CONVERT_TZ(event_ts, 'America/New_York', '+00:00') As 'Timestamp'
Rerun it if you update your system tzdata files (which can happen a number of times a year).如果您更新系统 tzdata 文件(每年可能发生多次),请重新运行它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.