zoukankan      html  css  js  c++  java
  • hive 3.1版本 和 1.2版本差异

    最近新搭的平台用到了hive 3.1的版本,发现和1.2的版本用法上存在差异

    hive 3.1源码

    其中涉及到时间转化的两个常用函数 from_unixtime 和 unix_timestamp 两者的TimeZone不在是从hive配置或者系统配置中获取,而是直接写死的UTC

    hive 1.2 最后获取依赖 rt.jar包

    这样就导致了带参的from_unixtime 和 unix_timestamp 函数 结果就是以UTC来算的,而不是我们北京时间PRC

    为了兼容原来的功能,我们需做代码层上的修改

    如:

    from_unixtime:
    1.2版本:
    select from_unixtime(1596988800,'yyyy-MM-dd HH:mm:ss');
    3.1版本:
    from_utc_timestamp(1596988800*1000L,'PRC'); //默认是yyyy-MM-dd HH:mm:ss
    转化为其他格式:
    date_format(from_utc_timestamp(c_timestamp*1000L,'PRC'),'yyyy-MM-dd HH')
    
    
    unix_timestamp:
    1.2版本: 
    select unix_timestamp('2020-08-10 23:42:11','yyyy-MM-dd HH:mm:ss'); 
    3.1版本: 
    unix_timestamp(to_utc_timestamp('2020-08-10 23:42:11','PRC'),'yyyy-MM-dd HH:mm:ss')
    

      

    
    
  • 相关阅读:
    网络运维架构
    Q in Q
    光纤/光模块的多模和单模
    Cisco VTP
    Cisco NTP配置
    惠普/aruba交换机
    【转】交换机背板带宽
    接入交换机下所有服务器不定时丢包
    windows 2012安装不了KB2919355
    Cisco交换机密码策略设置
  • 原文地址:https://www.cnblogs.com/long-yuan/p/13469826.html
Copyright © 2011-2022 走看看