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)是相差的天数。
   查询结果如下:

查询结果

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

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、获取当前日期: select current date from sysibm.sysdummy1;value...
    黑色礼帽阅读 5,135评论 0 0
  • LanguageManual UDF - Apache Hive - Apache Software Founda...
    葡萄喃喃呓语阅读 1,147评论 0 0
  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 1,750评论 0 6
  • 不是不想继续现在工作,而是忍受不了那些恶毒的语言,每次微博上那些新闻下面的评论我是一概不去翻的,害怕自己转过身就要...
    尘已尽阅读 210评论 0 1
  • 作者 岳晓东 心理咨询的场所应给人以什么样的感觉?这是一个不容忽视的问题。本章介绍了我人咨询室的布置及其寓意,希望...
    暖阳_1332阅读 1,105评论 0 0

友情链接更多精彩内容