sql - 将 Hive datediff() 转换为月份

标签 sql date hadoop hive datediff

当使用 Hive 时,有返回 select datediff('date1','date2') from table 值的功能,该值返回两个日期之间的天数. 如果我对两个日期之间的月份感兴趣怎么办?

一个选择是将结果除以 30.5,因为平均月份大约有 30.5 天,但是当考虑大日期范围时,这肯定会产生不精确。

您是否知道使用标准 SQL(最好是 HIVE)语法以类似方式检索月数(而不是天数)的方法?

最佳答案

你可以试试:

SELECT CAST(MONTHS_BETWEEN(date1, date2) AS INT) as numberOfMonthsBetweenDates
FROM table

这将返回您预期的结果。

关于sql - 将 Hive datediff() 转换为月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43073980/

相关文章:

sql - INSERT INTO 存储过程的输出

sql - Oracle REGEXP_INSTR() 和 "a-z"字符范围与预期不匹配

javascript - 像在 PHP 中一样在 JavaScript 中获取一年中的一周

mysql - 查询不处理我的日期格式

hadoop - 批量加载键值对数据到HBASE

sql - 使用与另一个表不同的值更新一个表中的多行

mysql - 更新多个表中的公共(public)字段

基于日期的 Javascript 重定向

hadoop - 无法通过带有Jdbc的Hive连接到HBase

java - Hadoop上的支持 vector 机