咨询Impala to_timestamp()返回额外1小时及跨工具差异的原因
问题原因分析
这个现象的核心原因是夏令时(DST)切换 + 不同客户端的时区配置差异,具体拆解如下:
夏令时切换的影响
1984年4月1日是很多地区(如欧洲中部时间CET/CEST、北美部分时区)的夏令时切换节点,当天凌晨0点会被向前调整1小时(变为1点)。而5月1日已经过了夏令时切换窗口,所以不会出现时间偏移。客户端时区配置差异
- DBeaver和Aqua Data Studio默认会使用本地操作系统的时区设置,如果你的系统时区属于有夏令时的区域,解析
01041984得到的本地0点时间会自动适配夏令时规则,转换为1点。 - Hue一般部署在服务器端,通常配置为UTC时区或未启用夏令时的时区,解析时不会触发夏令时调整,因此返回原始的0点时间。
- DBeaver和Aqua Data Studio默认会使用本地操作系统的时区设置,如果你的系统时区属于有夏令时的区域,解析
验证方法
在各客户端执行以下语句,查看时区配置差异:SELECT current_timezone();也可以指定UTC时区执行,验证时间一致性:
SELECT to_timestamp('01041984', 'ddMMyyyy') AT TIME ZONE 'UTC';
内容的提问来源于stack exchange,提问作者Gecko
相关产品推荐
相关产品推荐

