1、hive返回当天三种方式
select current_date; --返回年月日
--2017-06-15
select current_timestamp; --返回年月日时分秒
--2017-06-15 19:54:44
SELECT from_unixtime(unix_timestamp());
--2017-06-15 19:55:04
2、from_unixtime:转化unix时间戳到当前时区的时间格式
select from_unixtime(1323308943,’yyyyMMdd’);
--输出:20111208
3、unix_timestamp:获取当前unix时间戳
select unix_timestamp();
--输出:1430816254
select unix_timestamp('2015-04-30 13:51:20');
--输出:1430373080
4、year:返回日期中的年
select year('2015-04-02 11:32:12');
--输出:2015
5、month:返回日期中的月份
select month('2015-12-02 11:32:12');
--输出:12
6、day:返回日期中的天
select day('2015-04-13 11:32:12');
--输出:13
7、hour:返回日期中的小时
select hour('2015-04-13 11:32:12');
--输出:11
8、minute:返回日期中的分钟
select minute('2015-04-13 11:32:12');
--输出:32
9、second:返回日期中的秒
select second('2015-04-13 11:32:56');
--输出:56
10、weekofyear:返回日期在当前周数
select weekofyear('2015-05-05 12:11:1');
--输出:19
11、datediff:返回开始日期减去结束日期的天数
select datediff('2015-04-09','2015-04-01');
--输出:8
12、date_sub:返回日期前n天的日期
select date_sub('2015-04-09',4);
--输出:2015-04-05
13、date_add:返回日期后n天的日期
select date_add('2015-04-09',4);
--输出:2015-04-13
14、from_unixtime+ unix_timestamp Hive中yyyymmdd和yyyy-mm-dd日期之间的切换
思想:先转换成时间戳,再由时间戳转换为对应格式。
--20171205转成2017-12-05
select from_unixtime(unix_timestamp('20171205','yyyymmdd'),'yyyy-mm-dd') from dual;
--2017-12-05转成20171205
select from_unixtime(unix_timestamp('2017-12-05','yyyy-mm-dd'),'yyyymmdd') from dual;
15:Hive中取最近30天数据
datediff(CURRENT_TIMESTAMP ,gmt_create)<=30
16、Hive中 两个日期相差多少小时
select (unix_timestamp('2018-05-25 12:03:55') - unix_timestamp('2018-05-25 11:03:55'))/3600
--输出:1
17、Hive中 两个日期相差多少分钟
select (unix_timestamp('2018-05-25 12:03:55') - unix_timestamp('2018-05-25 11:03:55'))/60
--输出:60
18、hive 计算某一个日期属于星期几,如2018-05-20 是星期日
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
19、hive返回上个月第一天和最后一天
--上个月第一天
select trunc(add_months(CURRENT_TIMESTAMP,-1),'MM')
select concat(substr(add_months(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1),1,7),'-01');
--上个月最后一天
select date_sub(trunc(CURRENT_TIMESTAMP,'MM'),1);
20、to_date:日期时间转日期函数
select to_date('2015-04-02 13:34:12');
--输出:2015-04-02
21、返回当月的第一天文章来源:https://www.toymoban.com/news/detail-681927.html
select trunc('2016-08-16','MM')
--2016-08-01
参考::
https://blog.csdn.net/u013421629/article/details/80450047
https://blog.51cto.com/u_12228/6473685文章来源地址https://www.toymoban.com/news/detail-681927.html
到了这里,关于Hive学习(12)Hive常用日期函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!