zoukankan      html  css  js  c++  java
  • Hive日期、时间转换:YYYY-MM-DD与YYYYMMDD;hh.mm.ss与hhmmss的相互转换

    思路

    YYYY-MM-DD与YYYYMMDD;hh-mm-ss与hhmmss的相互转换有两种办法,第一种是利用UNIX时间戳函数,第二种是利用字符串拼接函数。

    YYYY-MM-DD与YYYYMMDD相互转换例子

    以2020-08-23和20200823相互转换为例

    --方法1: from_unixtime + unix_timestamp
    --2020082转成2020-08-23 
    select from_unixtime(unix_timestamp('20200823','yyyymmdd'),'yyyy-mm-dd') from db.table_name;
    
    --2020-08-23转成20200823
    select from_unixtime(unix_timestamp('2020-08-23','yyyy-mm-dd'),'yyyymmdd') from db.table_name;
    
    --方法2: substr + concat
    --2020082转成2020-08-23
    select concat(substr('20200823',1,4),'-',substr('20200823',5,2),'-',substr('20200823',7,2)) from db.table_name;
    
    --2020-08-23转成20200823
    select concat(substr('2020-08-23',1,4),substr('2020-08-23',6,2),substr('2020-08-23',9,2)) from db.table_name;
    

    hh.mm.ss与hhmmss相互转换例子

    以09.41.30和094130相互转换为例

    --方法1: from_unixtime + unix_timestamp
    --094130转成09.41.30
    select from_unixtime(unix_timestamp('094130','hhmmss'),'hh.mm.ss') from db.table_name;
    
    --09.41.30转成094130
    select from_unixtime(unix_timestamp('09.41.30','hh.mm.ss'),'hhmmss') from db.table_name;
    
    --方法2: substr + concat
    --094130转成09.41.30
    select concat(substr('094130',1,2),'.',substr('094130',3,2),'.',substr('094130',5,2)) from db.table_name;
    
    --09.41.30转成094130
    select concat(substr('09.41.30',1,2),substr('09.41.30',4,2),substr('09.41.30',7,2)) from db.table_name;
    

    使用方法1: from_unixtime + unix_timestamp,总的思路就是先将日期或时间用unix_timestamp转换为时间戳,然后再用from_unixtime以指定格式输出结果。

    使用方法2: substr + concat,总的思路就是去除或添加相关连接符,然后输出拼装后的结果。

  • 相关阅读:
    rabbitmq 安装和配置
    rabbitmq
    Redis Keys 命令
    python pickle模块
    Redis之Python操作
    flask中的g、add_url_rule、send_from_directory、static_url_path、static_folder的用法
    Python 并行分布式框架 Celery
    Celery+python+redis异步执行定时任务
    feed流拉取,读扩散,究竟是啥?
    DNS解析
  • 原文地址:https://www.cnblogs.com/JasonCeng/p/13548328.html
Copyright © 2011-2022 走看看