【问题标题】:Calculating number of days between two dates in HIVE计算HIVE中两个日期之间的天数
【发布时间】:2020-09-22 16:44:14
【问题描述】:

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

当前表:
ID 日期 1 日期 2
10 2020 年 1 月 14 日 2020 年 1 月 15 日
10 2020 年 5 月 10 日 2020 年 5 月 14 日
20 2020 年 3 月 1 日 2020 年 3 月 31 日

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

任何完成此任务的示例 HIVE 代码都很棒。

【问题讨论】:

    标签: sql hive hql


    【解决方案1】:

    我们将使用 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 日期。

    【讨论】:

    • 如果您想通过 ID 垂直计算 Date1 之间的天数,您将如何编写代码,例如,Date1 1/14/2020 和 5/10/2020 Datediff 之间的 ID 10 差异将是 117
    • 不是117,正确的是157天
    • 那么您提出的解决方案是什么?
    猜你喜欢
    • 1970-01-01
    • 2015-02-26
    • 2019-09-27
    • 1970-01-01
    • 2011-11-08
    相关资源
    最近更新 更多