简体   繁体   English

将东部时区转换为 UTC

[英]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.

相关问题 PHP MYSQL将时区感知日期转换为UTC - PHP MYSQL convert timezone aware dates to UTC 将 MySQL 数据库中的 UTC 日期时间转换为没有任何库的客户端时区 - Convert UTC Datetime in MySQL Database To Clients Timezone without any libraries 如何在PHP中将存储的数据库UTC时间戳数据转换为本地时区 - How to convert stored database utc timestamps data into local timezone in PHP MySQL 可以将存储的 UTC 时间转换为本地时区吗? - Can MySQL convert a stored UTC time to local timezone? 在“UTC”postgres 中更改时区 - Change TimeZone in 'UTC' postgres 如何在mysql中正确更新时区到东部时间? - How do I update the timezone to Eastern time in mysql properly? 当我尝试在连接时进行设置时,将mysql中的Datetime和时间戳从默认时区转换为Java中的UTC无法正常工作 - Convert Datetime and timestamp in mysql from default timezone to UTC in Java is not working when I try to set it at time of connection MySql脚本将所有数据库日期时间字段值从特定时区转换为UTC - MySql script to convert all DB datetime fields value from a specific timezone to UTC 将MYSQL日期时间值转换为UTC时区格式yyyy-MM-dd'T'HH:mm:ss'Z' - convert MYSQL datetime value to UTC Timezone format yyyy-MM-dd'T'HH:mm:ss'Z' 将 utc 设置为默认日期时区 - Setting utc as default date timezone
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM