zoukankan      html  css  js  c++  java
  • Hive中日期处理

    1、日期函数UNIX时间戳转日期函数:from_unixtime()

    函数格式返回值说明
    from_unixtime from_unixtime(bigint unixtime[, string format]) string 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式
    hive (temp)> select from_unixtime(1323308943,'yyyyMMdd') from dual;
    20111208
    hive (temp)> select from_unixtime(1323308943,'yyyy-MM-dd') from dual;
    2011-12-08

    2、当前UNIX时间戳函数: unix_timestamp()

    2.1 获取当前UNIX时间戳函数

    函数格式返回值说明
    unix_timestamp unix_timestamp() bigint 获得当前时区的UNIX时间戳
    hive (temp)> select unix_timestamp() from dual;
    1472105939

    2.2 日期转UNIX时间戳函数

    函数格式返回值说明
    unix_timestamp unix_timestamp(string date) bigint 转换格式为"yyyy-MM-dd HH:mm:ss"的日期到UNIX时间戳。转化失败,则返回0
    hive (temp)> select unix_timestamp('2016-08-25 13:02:03') from dual;
    1472101323

    2.3 指定格式日期转UNIX时间戳函数

    函数格式返回值说明
    unix_timestamp unix_timestamp(string date, string pattern) bigint 转换格式为"yyyyMMdd HH:mm:ss"的日期到UNIX时间戳。转化失败,则返回0
    hive (temp)> select unix_timestamp('20160825 13:02:03','yyyyMMdd HH:mm:ss') from dual;
    1472101323

    3、日期时间转日期函数: to_date()

    函数格式返回值说明
    to_date to_date(string timestamp) string 返回日期时间字段中的日期部分
    hive (temp)> select to_date('2016-12-08 10:03:01') from dual;
    2016-12-08

    4、日期转年函数: year()

    函数格式返回值说明
    year year(string date) int 返回日期中的年
    hive (temp)> select year('2016-12-08 10:03:01') from dual;
    2016
    
    hive (temp)> select year('2016-12-08') from dual;
    2016

    5、日期转月函数: month()

    函数格式返回值说明
    month month(string date) int 返回日期中的月份
    hive (temp)> select month('2016-12-08 10:03:01') from dual;
    12
    
    hive (temp)> select month('2016-11-08') from dual;
    11

    6、日期转天函数: day()

    函数格式返回值说明
    day day(string date) int 返回日期中的天
    hive (temp)> select day('2016-12-08 10:03:01') from dual;
    8
    
    hive (temp)> select day('2016-11-18') from dual;
    18

    7、日期转小时函数: hour()

    函数格式返回值说明
    hour hour(string date) int 返回日期中的小时
    hive (temp)> select hour('2016-12-08 10:03:01') from dual;
    10

    8、日期转分钟函数: minute()

    函数格式返回值说明
    minute minute(string date) int 返回日期中的分钟
    hive (temp)> select minute('2016-12-08 10:03:01') from dual;
    3

    9、日期转秒函数: second()

    函数格式返回值说明
    second second(string date) int 返回日期中的秒
    hive (temp)> select second('2016-12-08 10:03:01') from dual;
    1

    10、日期转周函数: weekofyear()

    函数格式返回值说明
    weekofyear weekofyear(string date) int 返回日期在当前的周数
    hive (temp)> select weekofyear('2016-12-08 10:03:01') from dual;
    49

    11、日期比较函数: datediff(string enddate, string startdate)

    函数格式返回值说明
    datediff datediff(string enddate, string startdate) int 返回结束日期减去开始日期的天数
    hive (temp)> select datediff('2016-12-08','2016-12-02') from dual;
    6

    12、日期增加函数: date_add(string startdate, int days)

    函数格式返回值说明
    date_add date_add(string startdate, int days) string 返回开始日期startdate增加days天后的日期
    hive (temp)> select date_add('2016-12-08',10) from dual;
    2016-12-18
    
    #当前日期为2016-08-25,在此基础上加7天
    hive (temp)> select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),7) from dual;
    2016-09-01

    13、日期减少函数:date_sub (string startdate, int days)

    函数格式返回值说明
    date_sub date_sub(string startdate, int days) string 返回开始日期startdate减少days天后的日期
    hive (temp)> select date_sub('2016-12-08',10) from dual;
    2016-11-28
    
    #当前日期为2016-08-25,在此基础上减7天
    hive (temp)> select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),7) from dual;
    2016-08-18


    作者:一刀Q
    链接:http://www.jianshu.com/p/e30395941f9c
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    win7下virtualbox遇到的问题
    2.5年, 从0到阿里
    TCP/IP入门(4) --应用层
    TCP/IP入门(3) --传输层
    TCP/IP入门(2) --网络层
    TCP/IP入门(1) --链路层
    Socket编程实践(13) --UNIX域协议
    Socket编程实践(12) --UDP编程基础
    Socket编程实践(10) --select的限制与poll的使用
    Socket编程实践(9) --套接字IO超时设置方法
  • 原文地址:https://www.cnblogs.com/coskaka/p/7339177.html
Copyright © 2011-2022 走看看