zoukankan      html  css  js  c++  java
  • hive

    hive 处理 时间问题

    (1) hive  获取 近一个月,近几个月的 信息

    select from_unixtime(unix_timestamp(concat(date_add(add_months(from_unixtime(unix_timestamp(),'yyyy-MM-dd hh:mm:ss'),-1),0),' 10:10:10')), 'yyyy-MM-dd')

    当前时间为  2019-03-18    运行结果为  2019-02-18   ,,-1 代表月,+n是向前推,-n是向后推,0是天数的加减,0 为不改变天数日期     yyyy-mm-dd  是需要生成日期函数的格式(也可yyyyMMd)

    (2) hive  获取上个月的月日期

    select SUBSTR(DATE_SUB(FROM_UNIXTIME(UNIX_TIMESTAMP()),DAYOFMONTH(FROM_UNIXTIME(UNIX_TIMESTAMP()))),1,7)

    今天是 2019-03-18       运算结果为  2019-02

     (3)  获取上一个小时

    select hour(from_unixtime(unix_timestamp(date_format(current_timestamp,'yyyy-MM-dd HH:mm:ss') )-3600))

    当日时间戳

    unix_timestamp() 方法可得到当前时间的时间戳。

    上月今日

    使用 add_months(日期,N) 函数可将日期往前、往后推N个月。主要有两种格式: 
    add_months(‘yyyy-MM-dd hh:mm:ss’,N),add_months(‘yyyy-MM-dd’,N)。N为正往后推,N为负往前推。例如:

    1 hive> select add_months('2018-02-28', 3);
    2 OK
    3 2018-05-31
    4 Time taken: 0.127 seconds, Fetched: 1 row(s)
    5 hive> select add_months('2018-02-28', -3);
    6 OK
    7 2017-11-30
    8 Time taken: 0.084 seconds, Fetched: 1 row(s)

    时间戳格式化
    由于add_months()方法的入参“日期”不能直接使用时间戳,需做一下转化。转化函数为:from_unixtime(时间戳, 日期、时间)。表现形式主要有:from_unixtime(时间戳, “yyyy-MM-dd hh:mm:ss”),from_unixtime(时间戳, “yyyy-MM-dd “)。如下:

    hive> select from_unixtime(1519818348, 'yyyy-MM-dd');
    OK
    2018-02-28
    Time taken: 0.088 seconds, Fetched: 1 row(s)
    hive> select from_unixtime(1519818348, 'yyyy-MM-dd hh:mm:ss');
    OK
    2018-02-28 07:45:48
    Time taken: 0.089 seconds, Fetched: 1 row(s)

    往后一日
    根据需求,当前日期往前推一个月后,还需往后推一日。往前、往后推N个日的函数为:date_add(日期,N)。主要有两种转换格式:date_add(‘yyyy-MM-dd hh:mm:ss’,N),date_add(‘yyyy-MM-dd’,N)。N为正往后推,N为负往前推。如下:

    hive> select date_add('2018-02-28', 3);
    OK
    2018-03-03
    Time taken: 0.089 seconds, Fetched: 1 row(s)
    hive> select date_add('2018-02-28', -3);
    OK
    2018-02-25
    Time taken: 0.085 seconds, Fetched: 1 row(s)

    这篇是我抄袭的,原文地址     https://blog.csdn.net/ck3207/article/details/79404633

    RUSH B
  • 相关阅读:
    一秒 解决 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql 问题
    30分钟让你学会 Spring事务管理属性
    判断是否是回文
    Linux自动获取IP地址 重启不会消失
    .The server quit without updating PID file (/var/lib/mysql/pc.pid).
    线程的状态
    linux vim基本操作
    C++ 函数重载和参数的缺省值
    C++ 类中的3种访问权限和继承方式
    C++ 内存管理
  • 原文地址:https://www.cnblogs.com/tangsonghuai/p/10550295.html
Copyright © 2011-2022 走看看