[转] String to Date conversion in hive - 在 Hive 中各种字符串转换成日期格式
【hive 日期函数】Hive常用日期函数整理
Hive日期格式转换用法
整理有参考上述文章,仅供学习,感恩知识共享~
select current_date();
--输出:2020-07-23
select current_timestamp();
--输出:2020-07-23 10:06:31.068
select unix_timestamp('2015-04-30 13:51:20');
-- 输出:1430373080
select from_unixtime(unix_timestamp('7/23/2020','MM/dd/yyyy'))
-- 输出2020-07-23 00:00:00
select from_unixtime(unix_timestamp('7/23/2020','MM/dd/yyyy'),'yyyy-MM-dd')
--输出2020-07-23
可以转化各种不同的时间格式为yyyy-MM-dd这种相对规范的格式
原始日期是什么,unix_timestamp中的日期格式就是什么,然后通过from_unixtime转换为yyyy-MM-dd!
select to_date('2020-07-23 13:34:12')
--输出2020-07-23
select weekofyear('2020-07-23');
--输出:30
select datediff('2020-07-09','2020-07-01');
--输出:8
select date_add(current_date(),7);
--输出:2020-7-30
select date_sub('2020-07-09',1);
--输出:2020-07-08
比如选择未来3天过生日的人员信息
--未来7天过生日
datediff(date_add(current_date(),7),from_unixtime(unix_timestamp(concat(substr(current_date(),0,4),substr(birthday,5)),'yyyyMMdd'),'yyyy-MM-dd')) between 0 and 3;
--上个月第一天
select trunc(add_months(CURRENT_TIMESTAMP,-1),'MM')
--上月最后一天
select date_sub(trunc(CURRENT_TIMESTAMP,'MM'),1);
select (unix_timestamp('2020-07-235 12:03:55') - unix_timestamp('2020-07-23 11:03:55'))/3600
输出:1
select (unix_timestamp('2020-07-23 12:03:55') - unix_timestamp('2020-07-23 11:03:55'))/60
输出:60
SELECT IF(pmod(datediff('2018-05-20', '1920-01-01') - 3, 7)='0', 7, pmod(datediff('2018-05-20', '1920-01-01') - 3, 7))
输出:7