【问题标题】:utc to pst conversion in impalaimpala中的UTC到PST转换
【发布时间】:2017-05-30 15:40:58
【问题描述】:

在 Impala 中,对于某些时间戳,我在从 UTC 转换为 PST 时得到了不正确的数据。当我在 hive 中运行相同的查询时,我得到了正确的数据,但在 impala 中,某些日期的 PST 转换不正确。

黑斑羚:

select from_utc_timestamp('2006-08-30 08:00:00','PST')
2006-08-30 01:00:00

蜂巢:

select from_utc_timestamp('2006-08-30 08:00:00','PST')
2006-08-30 00:00:00

有没有其他方法可以将 utc 转换为 PST

【问题讨论】:

    标签: hive impala pst


    【解决方案1】:

    在 Impala 中使用以下时区转换。 from_utc_timestamp(timestamp, string timezone)

    timezone :
    for Eastern Time:  America/New_York or EST5EDT
    for Central Time:  America/Chicago or CST6CDT
    for Mountain Time: America/Denver or MST7MDT
        Phoenix  won't observe daylight saving time: America/Phoenix
    
    for Pacific Time:  America/Los_Angeles or PST8PDT
    for Alaska Time:   America/Anchorage or America/Juneau
    for Hawaii Time:   America/Adak or EST5EDT
        Honolulu  won't observe day light saving time: Pacific/Honolulu
    
    select from_utc_timestamp('2017-03-11 13:41:22.084','America/Los_Angeles')
        2017-03-11 05:41:22.084000000                                        
    
    select from_utc_timestamp('2017-03-12 13:41:22.084','America/Los_Angeles')
        2017-03-12 06:41:22.084000000                                       
    
    select from_utc_timestamp('2017-11-03 13:41:22.084','America/Los_Angeles')
        2017-11-03 06:41:22.084000000                                    
    
    select from_utc_timestamp('2017-11-04 13:41:22.084','America/Los_Angeles')
       2017-11-04 06:41:22.084000000                                        
    
    select from_utc_timestamp('2017-11-05 13:41:22.084','America/Los_Angeles')
       2017-11-05 05:41:22.084000000                                       
    

    **Daylight saving time(2017) ends at 2:00 AM on Sunday, November 5**   
    select from_utc_timestamp('2017-11-05 08:58:00.000','America/Los_Angeles')
      2017-11-05 01:58:00 (UTC -7hrs)                                                
    
    select from_utc_timestamp('2017-11-05 08:59:00.000','America/Los_Angeles')
      2017-11-05 01:59:00 (UTC -7hrs)                                                   
    
    select from_utc_timestamp('2017-11-05 09:00:00.000','America/Los_Angeles')
      2017-11-05 01:00:00   (UTC -8hrs)                                               
    
    select from_utc_timestamp('2017-11-05 09:01:00.000','America/Los_Angeles')
      2017-11-05 01:01:00  (UTC -8hrs)  
    

    【讨论】:

    • 这看起来不像 S.O. answer -- 这只是一个观察列表(顺便说一句不容易阅读),没有任何明确的结论或建议。你能编辑你对 (a) 格式代码示例的答案吗Code Sample 样式; (b) 详细说明根本原因,例如“PST 在 Java (Hive) 和 C++ (Impala) 中不明确且解释不同”(我只是在那里猜测); (c) 提出解决方法?
    • select from_utc_timestamp('2017-11-05 13:41:22.084','America/Los_Angeles') 这不起作用。
    • 我添加了 2017 年 11 月 5 日的 DST 更改。我在 CDH5.7.6 上执行了此操作,没有发现任何问题。
    猜你喜欢
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2021-05-28
    • 2021-05-24
    • 2011-08-29
    相关资源
    最近更新 更多