hive的函数有很多,今天我带大家来总结下hive中常用的日期函数吧!!!

如有不足,还请大家多多指出,希望能和大家一起交流,共同进步!

时间一点一滴在溜走,我们要珍惜每一刻

1.日期时间转日期函数:to_date()

to_date(string timestamp) 返回日期时间字段中的日期部分。

返回类型:string

select to_date('2011-12-08 10:03:01') --2011-12-08

2.获取当前日期:current_date()

current_date() 返回当前时间日期

返回类型:date

select current_date() --2019-02-14

3.查询当前系统时间(包括毫秒数): current_timestamp()

current_timestamp() 返回当前时间戳

返回类型:timestamp

select current_timestamp() --2019-02-14 18:50:50.241

4.日期增加函数:date_add()

date_add(string startdate, int days) 返回开始日期startdate增加days天后的日期

返回类型:string

select date_add('2018-12-31', 1) --2019-01-01

5.日期减少函数:date_sub()

date_sub (string startdate, int days) 返回开始日期startdate减少days天后的日期

返回类型:string

select date_sub('2018-12-31', 1) --2018-12-30

6.日期比较函数:datediff()

datediff(string enddate, string startdate) 返回结束日期减去开始日期的天数

返回类型:int

select datediff('2019-02-15','2019-02-01') --14

7.日期格式化,按照格式返回字符串:date_format()

date_format(date/timestamp/string, string fmt) 按指定格式返回date

返回类型: string

select date_format('2019-04-08 12:12:12','yyyy-MM-dd') --2019-04-08select date_format('2019-04-08 12:12:12','yyyyMMdd') --20190408select date_format('2019-04-08 12:12:12','yyyy-MM') --2019-04select date_format('2019-04-08 12:12:12','yyyy') --2019

8.日期转年函数:year()

year(string/date) 返回时间字符串的年份部分

返回类型:int

select year('2019-04-08 12:12:12') --2019

9.月份函数:month()

month(string/date) 返回时间字符串的月份

返回类型:int

select month('2019-04-11') --4

10.天函数:day() /dayofmonth(date)

day(string/date) 返回时间字符串的天

返回类型:int

select day('2019-04-08 12:12:12') --8select day('2019-04-11') --11select dayofmonth('2019-04-08 12:13:11') --8

11.小时函数:hour()

hour(string/date) 返回时间字符串的小时数字

返回类型:int

select hour('2019-04-08 12:13:11') --12

12.分钟函数:minute()

minute(string/date) 返回时间字符串的分钟数字

返回类型:int

select minute('2019-04-08 12:13:11') --13

13.秒函数:second()

second(string/date) 返回时间字符串的分钟数字

返回类型:int

select second('2019-04-08 12:13:11') --11

14.月份差:months_between()

months_between(date1, date2) 返回date1与date2之间相差的月份,如date1>date2,则返回正,如果date1

返回类型:double

select months_between('2019-02-25','2019-01-26') --0.96774194select months_between('2019-02-25','2019-02-26') --0.03225806select months_between('2019-02-25','2019-02-25') --0

15.增加月份:add_months()

add_months(string start_date, int num_months) 返回当前时间下再增加num_months个月的日期

返回类型:string

select add_months('2019-01-01',2) --2019-03-01

16.查询时间字符串位于一年中的第几个周内:weekofyear()

weekofyear(string/date) 返回时间字符串位于一年中的第几个周内

返回类型:int

select weekofyear('2019-04-08 12:13:11') --15

17.查询当月第几天: dayofmonth(current_date)

返回类型:int

select dayofmonth(current_date()) --14

18.返回月末: last_day()

last_day(string date) 返回这个月的最后一天的日期,忽略时分秒部分(HH:mm:ss)

返回类型:string

select last_day(current_date()) --2019-02-28

19.返回时间的最开始年份或月份 :trunc()

trunc(string date, string format) 返回时间的最开始年份或月份

返回类型:string

select trunc('2019-04-08','YY') --2019-01-01select trunc('2019-04-08','MM') --2019-04-01

诗和远方

20.返回当月第1天:

有多种方法可以灵活使用,这里我列出我经常使用的两种方法

1).trunc(current_timestamp(),'MM')

select trunc(current_timestamp(),'MM') ----2019-02-01

2).date_sub(current_date,dayofmonth(current_date)-1)

select date_sub(current_date,dayofmonth(current_date)-1) --2019-02-01

21.返回下个月第1天:

1).trunc(add_months(current_timestamp(),1),'MM')

select trunc(add_months(current_timestamp(),1),'MM') --2019-03-01

2). add_months(date_sub(current_date,dayofmonth(current_date)-1),1)

select add_months(date_sub(current_date,dayofmonth(current_date)-1),1) --2019-03-01

22.返回上个月第一天

1). trunc(add_months(current_timestamp(),-1),'MM')

select trunc(add_months(current_timestamp(),-1),'MM') --2019-01-01

2). add_months(date_sub(current_date,dayofmonth(current_date)-1),-1)

select add_months(date_sub(current_date,dayofmonth(current_date)-1),-1) --2019-01-01

23. 下周几的具体日期: next_day()

next_day(string date, string week) 返回当前时间的下一个星期X所对应的日期

返回类型:string

下周一:select next_day(to_date(CURRENT_TIMESTAMP),'MO') --2019-02-18本周一:select date_sub(next_day(to_date(CURRENT_TIMESTAMP),'MO'),7) --2019-02-11上周一:select date_sub(next_day(to_date(CURRENT_TIMESTAMP),'MO'),14) --2019-02-04

工作之余,小酌一杯吧

24.UNIX时间戳转日期函数:from_unixtime()

from_unixtime(bigint unixtime[, string format]) 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式

返回类型:string

select from_unixtime(1323308143,'yyyy-MM-dd') --2011-12-08

25.获取当前UNIX时间戳函数: unix_timestamp()

返回类型: bigint

select unix_timestamp() --1554721853

26.日期转UNIX时间戳函数: unix_timestamp()

unix_timestamp(string date) 转换格式为“yyyy-MM-dd HH:mm:ss“的日期到UNIX时间戳。如果转化失败,则返回0

返回类型: bigint

 select unix_timestamp('2019-03-07 13:01:03') --1551934863

27.指定格式日期转UNIX时间戳函数: unix_timestamp

unix_timestamp(string date, string pattern) 转换pattern格式的日期到UNIX时间戳。如果转化失败,则返回0

返回类型: bigint

unix_timestamp('2009-03-20', 'yyyy-MM-dd') --1553011200

28.hive中获取当前时间

from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')

hive 时间转字符串_hive日期函数相关推荐

  1. mysql 日期时间格式化字符串_MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01 ...

  2. mysql 当前时间小时制_日期函数——MYSQL

    目录 1,日期时间格式化 date_format,  time_format 2,计算日期.时间之间的差值,单位有秒,天,月 3,字符串转换为日期函数str_to_date( )函数 4,timest ...

  3. 把一个中文日期时间格式字符串转为日期时间

    MS SQL Server2012中把一个中文日期时间格式字符串转为日期时间. 如: DECLARE @d NVARCHAR(20) = N'2012年08月12日14时36分48秒' SELECT  ...

  4. hive当前日期超前_hive日期函数

    Hive 中,可以用String.Date和Timestamp表示日期时间,String 用 yyyy-MM-dd 的形式表示,Date 用 yyyy-MM-dd 的形式表示,Timestamp 用 ...

  5. hive 时间转字符串_大数据面试杀招——Hive高频考点,还不会的进来挨打

    一.什么是Hive,为什么要用Hive,你是如何理解Hive? 面试官往往一上来就一个"灵魂三连问",很多没有提前准备好的小伙伴基本回答得都磕磕绊绊,效果不是很好.下面贴出菌哥的回 ...

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

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

  7. python获取系统时间为字符串_Python日期时间对象转换为字符串的实例

    1.标准转换格式符号说明 %a 本地星期的短名称 如:Sun, Mon, ..., Sat (en_US); So, Mo, ..., Sa (de_DE) %A 本地星期全名称 如 :Sunday, ...

  8. Sql Server 字符串、日期函数 收藏

    /**//*************************************************************************** DATEPART 返回代表指定日期的指 ...

  9. Sql Server 字符串、日期函数

    /**//*************************************************************************** DATEPART 返回代表指定日期的指 ...

最新文章

  1. Redis介绍 Java客户端操作Redis
  2. 将近一半的用户希望能够在两秒内或者更短的时间内打开网站
  3. Windows10下使用darknet和YOLOV3训练自己的数据集
  4. C#小游戏—钢铁侠VS太空侵略者
  5. 阿里云新设浙江猫精人工智能科技有限公司
  6. mysql数据库密码为空_注意MySQL 数据库用户root密码为空_MySQL
  7. latex Label ‘ ‘ multiply defined
  8. [FATAL] [DBT-10317] Specified SID Name (lhr122) already exists.
  9. Es6语法实现的转盘抽奖效果——可配置转盘的抽奖概率
  10. C语言-----职工信息管理系统
  11. 软件工程导论知识点总结
  12. 高端物理学名词_物理名词大全
  13. 让 Code Review成为一种习惯
  14. 非计算机专业的秋招之路
  15. 实现语音视频录制源码分享
  16. 计算机无法安装64位操作系统,细说64位电脑怎么安装32位系统
  17. 9.20模拟赛T1[聪明的小偷]
  18. 大型情感连续剧,从焫鷄到咸鱼
  19. 金蝶K3生产数据管理模块术语表
  20. Mac OSX 苹果电脑 安装 MacPorts

热门文章

  1. 带分数——排列和组合
  2. iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
  3. javascript面向对象(三):class语法详解
  4. 小熊肝了十个小时,搞出一本 go 语言精进之路
  5. NRF52832学习笔记1——NRF52832芯片简介
  6. 一个开发者自述:我是如何设计针对冷热读写场景的 RocketMQ 存储系统
  7. 本人从事Java十余年~是时候收徒弟~包教包会~深藏功与名~
  8. UI设计培训分享:UI设计自学好还是报班好?
  9. 计算机毕业设计SSM 校园疫情防控系统【附源码数据库】
  10. Proe无法保存DWG格式的问题