1. UNIX时间戳转日期函数: from_unixtime
    语法: from_unixtime(bigint unixtime[, string format])
    返回值: string
    说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式

    hive> select from_unixtime(1323308943,'yyyyMMdd');
    20111208
    
  2. 获取当前UNIX时间戳函数: unix_timestamp
    语法: unix_timestamp()
    返回值: bigint
    说明: 获得当前时区的UNIX时间戳

    hive> select unix_timestamp();
    1323309615
    
  3. 日期转UNIX时间戳函数: unix_timestamp
    语法: unix_timestamp(string date)
    返回值: bigint
    说明: 转换格式为"yyyy-MM-dd HH:mm:ss"的日期到UNIX时间戳。如果转化失败,则返回0。

    hive> select unix_timestamp('2011-12-07 13:01:03');
    1323234063
    
  4. 指定格式日期转UNIX时间戳函数: unix_timestamp
    语法: unix_timestamp(string date, string pattern)
    返回值: bigint
    说明: 转换pattern格式的日期到UNIX时间戳。如果转化失败,则返回0。

    hive> select unix_timestamp('20111207 13:01:03','yyyyMMdd HH:mm:ss');
    1323234063
    
  5. 日期时间转日期函数: to_date
    语法: to_date(string timestamp)
    返回值: string
    说明: 返回日期时间字段中的日期部分。

    hive> select to_date('2011-12-08 10:03:01');
    2011-12-08
    
  6. 日期转年函数: year
    语法: year(string date)
    返回值: int
    说明: 返回日期中的年。

    hive> select year('2011-12-08 10:03:01');
    2011
    hive> select year('2012-12-08');
    2012
    
  7. 季度函数: quarter
    语法: quarter(string date)
    返回值: int
    说明: 返回日期所属的季度。

    hive> select quarter('2011-12-08 10:03:01');
    4
    hive> select quarter('2011-08-08');
    3
    
  8. 日期转月函数: month
    语法: month (string date)
    返回值: int
    说明: 返回日期中的月份。

    hive> select month('2011-12-08 10:03:01');
    12
    hive> select month('2011-08-08');
    8
    
  9. 日期转天函数: day
    语法: day (string date)
    返回值: int
    说明: 返回日期中的天。

    hive> select day('2011-12-08 10:03:01');
    8
    hive> select day('2011-12-24');
    24
    
  10. 日期转小时函数: hour
    语法: hour (string date)
    返回值: int
    说明: 返回日期中的小时。

    hive> select hour('2011-12-08 10:03:01');
    10
    
  11. 日期转分钟函数: minute
    语法: minute (string date)
    返回值: int
    说明: 返回日期中的分钟。

    hive> select minute('2011-12-08 10:03:01');
    3
    
  12. 日期转秒函数: second
    语法: second (string date)
    返回值: int
    说明: 返回日期中的秒。

    hive> select second('2011-12-08 10:03:01');
    1
    
  13. 日期转周函数: weekofyear
    语法: weekofyear (string date)
    返回值: int
    说明: 返回日期在当前的周数。

    hive> select weekofyear('2011-12-08 10:03:01');
    49
    
  14. extract 提取函数
    语法: extract (field FROM source)
    返回值: int
    说明: 从源(从Hive 2.2.0开始)检索诸如天或小时的字段。源必须是日期,时间戳,间隔或可以转换为日期或时间戳的字符串。支持的字段包括:day,dayofweek,hour,minute,month,quarter,second,week和year。

    hive> select extract(month from "2016-10-20");
    10
    hive> select extract(hour from "2016-10-20 05:06:07");
    5
    hive> select extract(dayofweek from "2019-07-21 05:06:07");
    1
    # match year-month format of 'y-m'
    hive> select extract(month from interval '1-3' year to month);
    3
    # match day-time format of 'd h:m:s.n'
    hive> select extract(minute from interval '3 12:20:30' day to second);
    20
    
  15. 日期格式化函数: date_format
    语法: date_format(string date, string format)
    返回值: int
    说明: 返回结束日期减去开始日期的天数。
    格式化字符串参考:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

    hive> select date_format('2016-02-10','yyyy-MM');
    2016-02
    hive> select  date_format('2015-04-08', 'y');
    2015
    hive> select  date_format('2015-04-08', 'MM');
    04
    hive> select  date_format('2015-04-08', 'EEE');
    星期三
    hive> select  date_format('2015-04-08', 'D');
    98
    
  16. 日期比较函数: datediff
    语法: datediff(string enddate, string startdate)
    返回值: int
    说明: 返回结束日期减去开始日期的天数。

    hive> select datediff('2012-12-08','2012-05-09');
    213
    
  17. 日期增加函数: date_add
    语法: date_add(string startdate, int days)
    返回值: string
    说明: 返回开始日期startdate增加days天后的日期。

    hive> select date_add('2012-12-08',10);
    2012-12-18
    
  18. 日期减少函数: date_sub
    语法: date_sub (string startdate, int days)
    返回值: string
    说明: 返回开始日期startdate减少days天后的日期。

    hive> select date_sub('2012-12-08',10);
    2012-11-28
    
  19. UTC的时间戳转换为指定时区: from_utc_timestamp
    语法: from_utc_timestamp ({any primitive type} timestamp, string timezone)
    返回值: timestamp
    说明: timestamp是一种基本类型,包括timestamp / date,tinyint / smallint / int / bigint,float / double和decimal。 分数值被视为秒。整数值被视为毫秒。

    hive> select from_utc_timestamp(2592000.0,'PST');
    1970-01-31 00:00:00
    hive> select from_utc_timestamp(2592000000,'PST');
    1970-01-31 00:00:00
    hive> select from_utc_timestamp(timestamp '1970-01-30 08:00:00','PST');
    1970-01-30 00:00:00
    
  20. 指定时区的时间戳转换为UTC: to_utc_timestamp
    语法: to_utc_timestamp({any primitive type} timestamp, string timezone)
    返回值: timestamp
    说明: timestamp是一种基本类型,包括timestamp / date,tinyint / smallint / int / bigint,float / double和decimal。 分数值被视为秒。整数值被视为毫秒。

    hive> select to_utc_timestamp(2592000.0,'PST');
    1970-01-31 16:00:00
    hive> select to_utc_timestamp(2592000000,'PST');
    1970-01-31 16:00:00
    hive> select to_utc_timestamp(timestamp'1970-01-31 08:00:00','PST');
    1970-01-31 16:00:00
    
  21. 当前日期: current_date
    语法: current_date()
    返回值: String
    说明: 返回当前日期。

    hive> select current_date;
    2016-07-21
    hive> select current_date();
    2016-07-21
    
  22. 当前日期: current_timestamp
    语法: current_timestamp()
    返回值: timestamp
    说明: 返回当前日期。

    hive> select current_timestamp;
    2016-07-21 13:28:35.143
    hive> select current_timestamp();
    2016-07-21 13:28:35.143
    
  23. 月份增减函数: add_months
    语法: add_months(string start_date, int num_months, output_date_format)
    返回值: String
    说明:
    start_date之后的num_months日期(从Hive 1.1.0开始)。start_date是字符串,日期或时间戳。num_months是一个整数。如果start_date是该月的最后一天,或者结果月份的天数少于start_date的day组件,则结果是结果月份的最后一天。否则,结果与start_date具有相同的日期组件。默认输出格式为’yyyy-MM-dd’。
    从Hive 4.0.0开始,add_months支持可选参数output_date_format,它接受表示输出的有效日期格式的String。这允许在输出中保留时间格式

    hive> select add_months('2009-08-31',1);
    2009-09-30
    hive> select add_months('2009-08-31',-1);
    2009-07-31
    hive> select add_months('2017-12-31 14:15:16', 2, 'YYYY-MM-dd HH:mm:ss');
    2018-02-28 14:15:16
    
  24. last_day函数
    语法: last_day(string startdate)
    返回值: string
    说明: 返回日期所属月份的最后一天。

    hive> select last_day("2016-02-02");
    2016-02-29
    hive> select last_day("2016-07-02");
    2016-07-31
    
  25. next_day函数
    语法: next_day(string start_date,string day_of_week)
    返回值: string
    说明: 返回晚于start_date的第一个日期,并命名为day_of_week (从Hive 1.2.0开始)。start_date是一个字符串/日期/时间戳。day_of_week是一周中的2个字母,3个字母或全名(例如,Mo,星期二,星期五)。start_date的时间部分被忽略。星期一到星期日的英文(Monday,Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday)。

    hive> select next_day('2015-01-14', 'TU');
    2015-01-20
    hive> select next_day('2015-01-14', 'TUE');
    2015-01-20
    
  26. trunc函数
    语法: trunc(string date, string format)
    返回值: string
    说明: 返回月或年的第一天的日期。format支持的格式:MONTH / MON / MM,YEAR / YYYY / YY,否则返回NULL。

    hive> select trunc('2015-03-17','YEAR');
    2015-01-01
    hive> select trunc('2015-03-17','YYYY');
    2015-01-01
    hive> select trunc('2015-03-17','YY');
    2015-01-01
    hive> select trunc('2015-03-17','MM');
    2015-03-01
    
  27. months_between
    语法: date_sub (string startdate, int days)
    返回值: string
    说明: 返回date1和date2之间的月数。如果date1晚于date2,则结果为正。如果date1早于date2,则结果为负数。如果date1和date2是该月的同一天或两个月的最后一天,则结果始终为整数。否则,UDF将根据31天的月份计算结果的小数部分,并考虑时间组件date1和date2的差异。date1和date2类型可以是’yyyy-MM-dd’或’yyyy-MM-dd HH:mm:ss’格式的日期,时间戳或字符串。结果四舍五入到小数点后8位。

    hive> select months_between('1997-03-31 10:30:00', '1997-02-28');
    1.0
    hive> select months_between('1997-02-28 10:30:00', '1996-10-30');
    3.94959677

参考:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

Hive常用函数 -- 日期函数相关推荐

  1. Hive中的常用的日期函数

    Hive中的日期函数to_date(string timestamp)**:返回时间字符串中的日期部分,如to_date('1970-01-01 00:00:00')='1970-01-01'curr ...

  2. 一文搞定Hive常用运算和函数

    Hive常用运算和函数 关系运算 等值比较: = 不等值比较: <> 小于比较: < 小于等于比较: <= 大于等于比较: >= 空值判断: IS NULL 非空判断: ...

  3. jsp中两个字符串格式的日期可以相减吗_举个栗子!Tableau 技巧(126):学几个常用的日期函数...

    当我们的数据源有日期字段时,想根据日期实现需要的分析呈现,使用函数对日期进行计算,就非常有必要了! Tableau 中的日期函数很多,今天我们分享数据粉常用的 7 个函数,看它们如何帮助实现日期的计算 ...

  4. clickhouse 常用函数 算数函数 时间函数 日期函数 字符串函数 比较函数 数据类型函数 逻辑函数 类型转换函数 替换函数 数组函数 随机函数 编码函数 UUID URL IP 函数

    clickhouse 常用函数 算数函数 时间函数 日期函数 字符串函数 比较函数 数据类型函数 逻辑函数 类型转换函数 替换函数 数组函数 随机函数 编码函数 UUID URL IP 函数 算数函数 ...

  5. Hive 常用内置函数

    一.系统内置函数常用操作 1)查看系统自带的函数 hive> show functions; 2)显示自带的函数的用法 hive> desc function upper; 3)详细显示自 ...

  6. 传入一个日期 返回该月的第一天是星期几_Excel VBA 编程开发应用系列 (二十一)— Excel常用的日期函数...

    Excel为我们提供了大约有20个日期和时间的处理函数,这些函数对于处理表格中的日期数据都是非常有用的.下面介绍几个常用的Excel日期函数及其实际应用案例. 获取当前日期和时间的函数:today() ...

  7. php 常用的日期函数,常用php日期函数总结

    php常用日期函数总结: 包括检查日期格式是否合法,检查时间是否合法时间 ,时间比较函数,返回两个日期相差几秒.几分钟.几小时或几天. function check_date($date) { //检 ...

  8. mysql计算1000天后的日期_Mysql中常用的日期函数

    在日常工作中写sql也会经常用到日期函数,更甚者在面试的时候会让你在写sql的过程中使用日期函数,因此做了几个常用日期函数的汇总,希望可以帮助其他人了解日期函数. 获取当前的日期(包含具体的时分秒) ...

  9. Excel数据分析常用函数④——日期函数(now,today,datedif,weekday,weeknum,text)

    Excel 系列目录: Excel数据分析常用函数①--查询函数 Excel数据分析常用函数②--统计函数 Excel数据分析常用函数③--字符串函数 Excel高级图表11-数据可视化的极简之美 E ...

最新文章

  1. 使用runtime让button传递多个参数
  2. “输入字符不是 MATLAB 语句或表达式中的有效字符”的解决办法
  3. 【Silverlight】Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System)
  4. python怎么随机生成数据_Python-随机生成数据
  5. 成功打开华三模拟器后,创建设备完成却启动设备失败
  6. 【深度学习】神经网络知识专题总结
  7. html中css信封怎么表示,CSS3信封形状
  8. ubuntu系统靠谱的清理内存的方法(can not allocate memory 问题)
  9. oracle和mysql的安装教程_客户端安装和配置(1) - Oracle 10g 安装图解教程_数据库技术_Linux公社-Linux系统门户网站...
  10. Avalonia跨平台入门第九篇之控件置顶和置底
  11. C++11的for循环使用auto的新用法
  12. 将25k行C#转换为Java的经验教训
  13. 【渝粤教育】国家开放大学2018年春季 8617-21T燃气仪表与自动化 参考试题
  14. [论文阅读] Adaptive Context Selection for Polyp Segmentation
  15. 51CTO独家:2008下半年软考所有科目试题已到
  16. SpringCloud微服务实战—翟永超 读书笔记
  17. 关于destoon系统遇到的一些问题总结
  18. 优秀Android程序员必知必会的网络基础,Android开发面试题及答案
  19. 2021-11-15 cv2.erode()和cv2.dilate()的原理理解
  20. win10配置docker环境

热门文章

  1. Vmware vcsa服务管理
  2. QT在线安装的那些坑
  3. 基于微信小程序的青少年生理健康知识小助手
  4. dblink ora-00600 ora-02072 ora-02063
  5. 商业智能BI系统助力物流行业向智慧物流过渡
  6. 免费分享thinkphp框架开发周易八字起名网宝宝起名在线下单网站源码自适应可二开
  7. “陆军一号”座驾一览
  8. 变频升级变流,格兰仕空调再度给力
  9. nokia n9 android 4.4,诺基亚N9能升级安卓4.0吗
  10. 混沌数学之ASin模型