hive最全面的日期函数

系列文章目录



前言

        收录hive2.1版本中所有的日期函数。

        标红的函数为常用函数。


函数列表

日期函数
分类返回类型函数名入参描述
将时间戳格式化stringfrom_unixtime(bigint unixtime)

秒级时间戳->字符串,

默认pattern为:

yyyy-MM-dd HH:mm:ss

stringfrom_unixtime(bigint unixtime, string pattern])

秒级时间戳->字符串,

同时指定pattern

转换为时间戳bigintunix_timestamp()获取当前时间戳,秒为单位,共10位
bigintunix_timestamp(str)datetime字符串

字符串->时间戳。

示例:unix_timestamp('2009-03-20 11:30:01') = 1237573801

bigintunix_timestamp(str,str)

datetime字符串,

字符串模式

示例:unix_timestamp('2009-03-20', 'uuuu-MM-dd') = 1237532400
字符串格式化为日期

2.1之前,string

2.1开始,date

to_date(string timestamp)

将字符串,

转换为日期,

只有日期部分

提取intyear(string date)提取日期中的"年份"
quarter(date/timestamp/string)

提取日期中的"季度",

根据日期解析季度,

返回数字

month(string date)提取日期中的"月份"
day(string date) dayofmonth(date)提取日期中的"日数"
hour(string date)提取日期时间中的"小时"
minute(string date)提取日期时间中的"分钟"
second(string date)提取日期时间中的"秒数"
weekofyear(string date)提取日期时间中的"周数"
extract(field FROM source)

语法略复杂,

且它的使用场景均可用上述提取函数代替,

故此不作赘述

日期相减intdatediff(string enddate, string startdate)

将两个日期相减,

得到天数

日期加数

pre 2.1.0: string

2.1.0 on: date

date_add(date/timestamp/string startdate, tinyint/smallint/int days)

往一个日期上添加天数

示例:

date_add('2008-12-31', 1)  返回 '2009-01-01'

日期减数

pre 2.1.0: string

2.1.0 on: date

date_sub(date/timestamp/string startdate, tinyint/smallint/int days)

往一个日期上减去天数

示例:

date_sub('2008-12-31', 1)  返回 '2008-12-30'

当前时间datecurrent_date

返回当前日期,

同一个查询中,多次调用该函数,返回同一个值!

timestampcurrent_timestamp

返回当前时间戳,

同一个查询中,多次调用该函数,返回同一个值!

日期-月份加数stringadd_months(string start_date, int num_months, output_date_format)

对一个日期,

进行月份上加数操作

示例:

add_months('2024-03-20', 1)    返回 2024-04-20;

月份加数后,若超过该月实际的天数,自动降为该月的最后一天!

示例:

add_months('2024-03-31', 1)    返回 2024-04-30;

月份最后一天stringlast_day(string date)返回日期所属月份的最后一天
下一天stringnext_day(string start_date, string day_of_week)

计算一个日期之后的,

下一个day of week,

示例:

select next_day('2024-03-21','mo')

返回 2024-03-25,

mo代表Monday,

21号之后的星期一是25号,

支持的day of week:2个字母,3个字母,或者是全拼,

星期一可以是:mo,mon,monday

日期截断stringtrunc(string date, string format)

日期,

截断格式

对一个日期进行截断,

支持年份截断和月份截断,截断格式为:MONTH/MON/MM、YEAR/YYYY/YY

示例如下:

trunc('2015-03-17', 'MM')   返回 2015-03-01,

把当前月份截断,当前月份回到当月第一天!

月份差值doublemonths_between(date1, date2)
日期格式化stringdate_format(date/timestamp/string ts, string pattern)

日期,

格式化字符串

将日期,按照指定的格式化模板,进行格式化,

返回格式化字符串

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值