首页 > 解决方案 > 计算HIVE中两个日期之间的天数

问题描述

我需要通过 HIVE 中的 ID 计算两个日期之间的天数。

当前表:
ID Date1 Date2
10 1/14/2020 1/15/2020
10 5/10/2020 5/14/2020
20 3/1/2020 3/31/2020

所需的表将有一个额外的列,DayDiff 为 1、5、31

完成此操作的任何示例 HIVE 代码都会很棒。

标签: sqlhivehql

解决方案


我们将使用 DATEDIFF() 函数。这是您要编写的查询:

SELECT 
   DATEDIFF(Date_2, Date_1) 
     AS days FROM TableName;

实时实现https://learnsql.com/cookbook/how-to-find-the-number-of-days-between-two-dates-in-mysql/#:~:text=Use%20the%20DATEDIFF() %20function%20to%20retrieve%20the%20number%20of,%2C%20it's%20the%20expiration_date%20column。)
使用 DATEDIFF() 函数检索 MySQL 数据库中两个日期之间的天数。这个函数有两个参数:

结束日期。(在我们的示例中,它是 Date_2 列。)开始日期。(在我们的示例中,它是 Date_1 列。)这些参数可以是日期/日期时间值、返回日期/日期时间值的表达式或日期时间或日期数据类型的列。

此函数从结束日期中减去开始日期,并以整数形式返回天数。在我们的示例中,黄油是在“2018-07-30”购买的,但它的 Date_2 日期是“2019-08-10”;在 Date_1 之后,它可以在 376 天内食用。请注意,酸奶是作为过期产品购买的:天数差为 -1,其 Date_1 日期晚于其 Date_2 日期。


推荐阅读