zoukankan      html  css  js  c++  java
  • 【hive 日期函数】Hive常用日期函数整理

    1、to_date:日期时间转日期函数

    select to_date('2015-04-02 13:34:12');
    输出:2015-04-02
    1
    2
    2、from_unixtime:转化unix时间戳到当前时区的时间格式

    select from_unixtime(1323308943,’yyyyMMdd’);
    输出:20111208
    1
    2
    3、unix_timestamp:获取当前unix时间戳

    select unix_timestamp();
    输出:1430816254
    select unix_timestamp('2015-04-30 13:51:20');
    输出:1430373080
    1
    2
    3
    4
    4、year:返回日期中的年

    select year('2015-04-02 11:32:12');
    输出:2015
    1
    2
    5、month:返回日期中的月份

    select month('2015-12-02 11:32:12');
    输出:12
    1
    2
    6、day:返回日期中的天

    select day('2015-04-13 11:32:12');
    输出:13
    1
    2
    7、hour:返回日期中的小时

    select hour('2015-04-13 11:32:12');
    输出:11
    1
    2
    8、minute:返回日期中的分钟

    select minute('2015-04-13 11:32:12');
    输出:32
    1
    2
    9、second:返回日期中的秒

    select second('2015-04-13 11:32:56');
    输出:56
    1
    2
    10、weekofyear:返回日期在当前周数

    select weekofyear('2015-05-05 12:11:1');
    输出:19
    1
    2
    11、datediff:返回开始日期减去结束日期的天数

    select datediff('2015-04-09','2015-04-01');
    输出:8
    1
    2
    12、date_sub:返回日期前n天的日期

    select date_sub('2015-04-09',4);
    输出:2015-04-05
    1
    2
    13、date_add:返回日期后n天的日期

    select date_add('2015-04-09',4);
    输出:2015-04-13
    1
    2
    14、from_unixtime+ unix_timestamp Hive中yyyymmdd和yyyy-mm-dd日期之间的切换

    思想:先转换成时间戳,再由时间戳转换为对应格式。
    --20171205转成2017-12-05

    select from_unixtime(unix_timestamp('20171205','yyyymmdd'),'yyyy-mm-dd') from dual;

    --2017-12-05转成20171205

    select from_unixtime(unix_timestamp('2017-12-05','yyyy-mm-dd'),'yyyymmdd') from dual;
    1
    2
    3
    4
    5
    6
    7
    8
    15:Hive中取最近30天数据

    datediff(CURRENT_TIMESTAMP ,gmt_create)<=30
    1
    16、Hive中 两个日期相差多少小时

    select (unix_timestamp('2018-05-25 12:03:55') - unix_timestamp('2018-05-25 11:03:55'))/3600

    输出:1
    1
    2
    3
    17、Hive中 两个日期相差多少分钟

    select (unix_timestamp('2018-05-25 12:03:55') - unix_timestamp('2018-05-25 11:03:55'))/60

    输出:60
    1
    2
    3
    18、hive 计算某一个日期属于星期几,如2018-05-20 是星期日


    SELECT IF(pmod(datediff('2018-05-20', '1920-01-01') - 3, 7)='0', 7, pmod(datediff('2018-05-20', '1920-01-01') - 3, 7))
    输出:7
    1
    2
    3
    17、hive返回上个月第一天和最后一天

    --上个月第一天
    select trunc(add_months(CURRENT_TIMESTAMP,-1),'MM')


    select concat(substr(add_months(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1),1,7),'-01');


    --上个月最后一天
    select date_sub(trunc(CURRENT_TIMESTAMP,'MM'),1);
    ---------------------
    作者:开心果汁
    来源:CSDN
    原文:https://blog.csdn.net/u013421629/article/details/80450047
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Github创建远程库
    注册和登录Github
    Github简介
    一个成都程序猿写于离开北京一周年与26岁生日的这一天。
    【原创】面试时遇到『看门狗』脖子上挂着『时间轮』,我就问你怕不怕?
    【编程玄学】一个困扰我122天的技术问题,我好像知道答案了。
    【原创】(求锤得锤的故事)Redis锁从面试连环炮聊到神仙打架。
    【原创】面试官:你回去等通知吧!
    【原创】面试官问我G1回收器怎么知道你是什么时候的垃圾?
    【原创】面试官:你说你熟悉jvm?那你讲一下并发的可达性分析
  • 原文地址:https://www.cnblogs.com/zhaohuanhuan/p/10969420.html
Copyright © 2011-2022 走看看