You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中将UTC时间转换为EST或EDT时区时间

MySQL UTC时间转EST/EDT时间实现方案

前置准备

首先要确保MySQL已加载系统时区信息,否则时区转换函数无法识别UTC、America/New_York这类时区名称,加载方式如下:

  • Linux系统执行命令:
    mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
  • Windows系统可从MySQL官网下载对应版本的时区表,导入到mysql库中即可。

转换逻辑说明

EST/EDT是北美东部时区的冬令时/夏令时标识,会随季节自动切换偏移量,不要使用固定的UTC-5偏移,否则夏令时时段会出现1小时误差,应该使用标准时区名America/New_York,MySQL会自动处理夏令时切换逻辑。

修改后的插入语句

你可以直接修改SELECT查询中的submission_date字段,用CONVERT_TZ函数完成转换即可:

INSERT INTO user
(name,department,submission_date)
SELECT 
  name,
  department,
  CONVERT_TZ(submission_date, 'UTC', 'America/New_York') 
FROM user_details;

注意事项

  • 如果你不需要适配夏令时,固定使用EST(UTC-5)时间,可以用固定偏移写法,不需要加载时区表也可运行:
    CONVERT_TZ(submission_date, '+00:00', '-05:00')
    
  • 如果user_details表的submission_date是DATE类型没有时间部分,转换时默认按UTC 00:00:00计算,转成东部时间可能会显示为前一天的日期,属于时区转换的正常结果,可先执行测试查询核对结果:
    SELECT 
      submission_date AS utc_date,
      CONVERT_TZ(submission_date, 'UTC', 'America/New_York') AS est_edt_date
    FROM user_details LIMIT 10;
    

内容的提问来源于stack exchange,提问作者user15198141

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:06:10