hive 时间差(天、小时、分、秒)

    , unix_timestamp() - unix_timestamp(ymdhms), unix_timestamp()
    , unix_timestamp(ymdhms)
    , concat(CAST((unix_timestamp() - unix_timestamp(ymdhms)) / (60 * 60 * 24) AS int), '天 ', CAST((unix_timestamp() - unix_timestamp(ymdhms)) / (60 * 60) AS int) % 24, '小时 ',  
 CAST((unix_timestamp() - unix_timestamp(ymdhms)) / 60 AS int) % 60, '分 ', 
CAST((unix_timestamp() - unix_timestamp(ymdhms)) % 60 AS int), '秒')
    , ymdhms
FROM wl_csg.srv_open_account_webull_18_05_21

   说明:
   unix_timestamp()是hive系统时间,格式是timestamp,精确到秒。
   unix_timestamp(ymdhms)是把时间转换成timestamp格式,是2018-05-23 07:15:50格式。
   unix_timestamp() - unix_timestamp(ymdhms)是两个时间转换为timestamp之后相减,timestamp单位是秒,相减之后是两个时间之间相差的秒数。
   CAST((unix_timestamp() - unix_timestamp(ymdhms)) % 60 AS int)是相差的秒数。
   CAST((unix_timestamp() - unix_timestamp(ymdhms)) / 60 AS int) % 60是相差的分钟数。
   CAST((unix_timestamp() - unix_timestamp(ymdhms)) / (60 * 60) AS int) % 24是相差的小时数。
   concat(CAST((unix_timestamp() - unix_timestamp(ymdhms)) / (60 * 60 * 24) AS int)是相差的天数。
   查询结果如下:

《hive 时间差(天、小时、分、秒)》 查询结果

  • 日期函数
select
trunc(CURRENT_DATE, 'MM'),  --当月第一天
 last_day(CURRENT_DATE),   --当月最后一天
add_months(CURRENT_DATE, -1),  --增加一天trunc(add_months(CURRENT_DATE, -1), 'MM')  --上个月第一天

参考

    原文作者:似水之星
    原文地址: https://www.jianshu.com/p/d01d095edc4a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞