hive中如何求两个时间点之间相差月份数,我只知道datediff函数可以求天数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive中如何求两个时间点之间相差月份数,我只知道datediff函数可以求天数相关的知识,希望对你有一定的参考价值。

select floor((unix_timestamp(substr('201402',1,6),'yyyyMM')-unix_timestamp(substr('20141112',1,6),'yyyyMM'))/2629495);
解释:
格式:两个时间的格式自己随意指定
数字2629495解释。一年有365天4小时58分56秒。折算下秒数再除以12,得到2629495。
然后自己理解下这个数字就明白了。
参考技术A 可以用datediff函数。
创建表及插入数据:

create table test
(begindate datetime,
enddate datetime);

insert into test values ('2015-01-01','2015-07-13')
执行:

select datediff(day,begindate,enddate) from test;

结果:
参考技术B 直接两个时间的年份相减*12加上两个月份相减即可了,例如2020-05-01与2021-03-04,就是(2021-2020)*12+(3-5)=10。

以上是关于hive中如何求两个时间点之间相差月份数,我只知道datediff函数可以求天数的主要内容,如果未能解决你的问题,请参考以下文章

如何用PHP+MySQL计算两个日期之间的月份数和其余下的天数?

js 怎么求两个日期相差几个月零几天?

Java计算两个日期时间相差几天,几小时,几分钟等

Java计算两个日期时间相差几天,几小时,几分钟等

求JS两个日期之间的月份数

如何用EXCEL计算两个日期之间相差的年数和月数?