hive日期处理函数

hive日期处理函数,第1张

hive日期处理函数 1、当前日期 1.1、程序默认日期格式
  --   程序默认日期格式  --
	1、 '$[yyyy-MM-dd]'      ===>  '2021-01-01'
	2、 '$[yyyyMMdd]'		 ===>	'20210101'
1.2、hive获取当前时间戳
unix_timestamp语法:   unix_timestamp() 
返回值:   bigint
-	hive (default)> select unix_timestamp();
-	1638771459
1.3、hive获取当前日期
from_unixtime语法:from_unixtime(bigint unixtime[, stringformat]) 
返回值: string

-	hive (default)> select from_unixtime(unix_timestamp(),'yyyyMMdd');
-	20211206

- hive (default)>  select from_unixtime(unix_timestamp(),'yyyy-MM-dd');
- 2021-12-06
2、日周月年日期处理 2.1、获取日 2.2.1、当前几号
day   (string date) 
返回值: int
说明: 返回日期中的天。
hive>   select day('2011-12-08 10:03:01');
8
hive>   select day('2011-12-24');
24
2.2、获取周 2.2.1、获取第几周
weekofyear语法:   weekofyear (string date) 
返回值: int
说明: 返回日期在当前的周数。
举例:
hive>   select weekofyear('2011-12-08 10:03:01') from dual;
49
2.2.2、获取哪一年的第几周
返回值: int
说明: 返回日期在当前年的周数。

hive > select  year(date_sub(next_day(date_sub('2021-11-11',1),'MO'),4))*100+weekofyear(date_sub('2021-11-11',1));
202145
2.2.3、当前日期下 周一日期 (枚举取日期)
返回值: string
说明: 当前日期下 周一日期。
hive > select  regexp_replace(date_add(next_day('2021-11-11', 'mo'), -7), '-', '');
20211108
2.2.4、当前日期下 周日日期
返回值: string
说明: 当前日期下 周日日期。
select regexp_replace(date_add(next_day('2021-11-11', 'mo'), -1), '-', '');
2.3、获取月 2.3.1、当前月份
默认函数: '$[yyyyMM]'

month语法: month   (string date) 
返回值: int
说明: 返回日期中的月份。
举例:
hive>   select month('2011-12-08 10:03:01') from dual;
12
hive>   select month('2011-08-08') fromdual;
8
2.3.1、上月日期 (第一天)(枚举可取值)
返回值: string
说明: 返回当前日期 下 的上月 一号。

hive > select trunc(add_months('2021-02-02',-1),'MM')
2021-01-01

返回值: string
说明: 返回当前日期 下 的上月 一号。

hive > regexp_replace(trunc(add_months('2021-02-02',-1),'MM'),'-','')
20210101
2.3.1、上月日期(最后一天)(枚举可取值)
返回值: string
说明: 返回当前日期 下 的上月 最后一天。
hive > select last_day(add_months('2021-02-02',-1))
2021-01-31

返回值: string
说明: 返回当前日期 下 的上月 最后一天。
hive > select regexp_replace(last_day(add_months('$[yyyy-MM-dd]',-1)),'-','')
20210131
2.4、获取年
默认函数: '$[yyyy]'

 year(string date) 
返回值: int
说明: 返回日期中的年。
举例:
hive>   select year('2011-12-08 10:03:01') from dual;
2011
hive>   select year('2012-12-08') fromdual;
2012
3、日期其他函数 3.1、日期比较函数:
datediff语法:   datediff(string enddate,string startdate) 
返回值: int
说明: 返回结束日期减去开始日期的天数。
举例:
hive>   select datediff('2012-12-08','2012-05-09')from dual;
213
3.2、日期增加函数:
date_add语法:   date_add(string startdate, intdays) 
返回值: string
说明: 返回开始日期startdate增加days天后的日期。
举例:
hive>   select date_add('2012-12-08',10)from dual;
2012-12-18
3.3、日期减少函数:
 date_sub语法:   date_sub (string startdate,int days) 
返回值: string
说明: 返回开始日期startdate减少days天后的日期。
举例:
hive>   select date_sub('2012-12-08',10)from dual;
2012-11-28
3.4、日期格式化
to_date(string timestamp) 
返回值:   string

- hive (default)> select year('2011-12-08 10:03:01');
- 2011-12-08

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5654361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存