• hive:常见日期函数


    1. to_date:日期时间转日期

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select to_date('2022-04-29 08:52:14.0');
    输出:2022-04-29
    
    • 1
    • 2
    • 3

    2. current_date :当前日期

    命令:select current_date();
    输出:2022-04-30
    
    • 1
    • 2

    3. date_sub : 返回日期前n天的日期

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select date_sub('2022-04-29 08:52:14.0',1);
    输出:2022-04-28
    命令:select date_sub('2022-05-01 08:52:14.0',1);
    输出:2022-04-30
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4. date_add : 返回日期后n天的日期

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select date_add('2022-04-29 08:52:14.0',1);
    输出:2022-04-30
    命令:select date_add('2022-04-30 08:52:14.0',1);
    输出:2022-05-01
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5. unix_timestamp:获取当前unix时间戳

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select unix_timestamp('2022-04-29 08:52:14.0');
    输出:1651193534
    
    • 1
    • 2
    • 3

    6. from_unixtime:转化unix时间戳到当前时区的时间格式

    命令:select from_unixtime(1651193535,'yyyy-MM-dd HH:mm:ss.s');
    输出:2022-04-29 08:52:15.15
    
    • 1
    • 2

    7.current_timestamp:当前的时间字符串

    命令:select current_timestamp();
    输出:2022-04-30 10:23:18.022
    
    • 1
    • 2

    8. 获取日期的年、月、天、小时、分钟、秒

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select year('2022-04-29 08:52:14.0');
    输出:2022
    命令:select month('2022-04-29 08:52:14.0');
    输出:4
    命令:select day('2022-04-29 08:52:14.0');
    输出:29
    命令:select hour('2022-04-29 08:52:14.0');
    输出:8
    命令:select minute('2022-04-29 08:52:14.0');
    输出:52
    命令:select second('2022-04-29 08:52:14.0');
    输出:14
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    9. trunc:为指定元素而截去的日期值

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select trunc('2022-04-29 08:52:14.0','YY');
    输出:2022-01-01  --当年的第一天
    命令:select trunc('2022-04-29 08:52:14.0','MM');
    输出:2022-04-01  --当月的第一天
    
    • 1
    • 2
    • 3
    • 4
    • 5

    10. datediff:返回开始日期减去结束日期的天数

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select datediff('2022-04-29 08:52:14.0','2022-04-28 08:52:14.0');
    输出:1
    
    • 1
    • 2
    • 3

    11. next_day:得到一个字符串日期的下周几的具体日期

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select next_day('2022-04-29','sunday');
    输出:2022-05-01
    命令:select next_day('2022-04-29','sun');
    输出:2022-05-01
    
    • 1
    • 2
    • 3
    • 4
    • 5

    12. last_day:当月的最后一天日期

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    命令:select last_day('2022-04-29');
    输出:2022-04-30
    
    • 1
    • 2
    • 3

    13. months_between:返回开始日期减去结束日期的月数

    -- 注:日期字符串必须满足yyyy-MM-dd格式
    ----得到的结果不是相差自然月,而是按相差天数得到的相对月份
    命令:select months_between(to_date('2022-04-05'), to_date('2022-03-29'));
    输出:0.22580644999999999  
    命令:select months_between(to_date('2022-04-30'), to_date('2022-03-29'));
    输出:1.03225806 
    ----用floor函数向下取整
    命令:select floor(months_between(to_date('2022-04-05'), to_date('2022-03-29')));
    输出:0  
    命令:select floor(months_between(to_date('2022-04-30'), to_date('2022-03-29')));
    输出:1
    --用时间戳格式转化一下,以得到相差自然月
    命令:select months_between(from_unixtime(unix_timestamp('2022-04-05','yyyy-MM'),'yyyy-MM-dd'), from_unixtime(unix_timestamp('2022-03-29','yyyy-MM'),'yyyy-MM-dd'));
    输出:1 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    ps:初衷是通过撰写博文记录自己所学所用,实现知识的梳理与积累;将其分享,希望能够帮到面临同样困惑的小伙伴儿。如发现博文中存在问题,欢迎随时交流~~

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    python程序编写
    MQTT协议基本流程、原理
    Java 基础之锁
    Redis持久化机制分析
    ssm冬奥会志愿者报名系统毕业设计源码241154
    力扣二叉树调试工具类——根据力扣数组输入形式的二叉树构造真正的二叉树
    北京旅游HTML学生网页设计作品 dreamweaver作业静态HTML网页设计模板 北京旅游景点网页作业制作 HTML+CSS+JS
    find、Window、Size、
    【多线程】深入剖析线程池的应用
    邀请试用 实景三维模型在线浏览及网页分享平台
  • 原文地址:https://blog.csdn.net/m0_67402026/article/details/126083479