【问题标题】:Date Conversion in Hive from different FormatsHive 中不同格式的日期转换
【发布时间】:2017-03-06 15:27:23
【问题描述】:

我在 Hive 中有一个 Customer 表(custid bigint,custname 字符串,DOB 字符串)。 DOB 具有不同格式的值(6/17/1969、08/22/54、2003 年 1 月 11 日)。 我需要将不同格式的日期转换为标准化日期格式 (MM/dd/yy) 并将其存储在 Hive 的另一个表中。

【问题讨论】:

    标签: date hadoop hive hiveql


    【解决方案1】:

    第一 -
    ANSI/ISO 标准是 YYYY-MM-DD

    当日期用数字表示时,它们可以解释为 不同的方法。例如,01/05/12 可能表示 2012 年 1 月 5 日,或 2012 年 5 月 1 日。在个人层面上,这种不确定性可能非常 令人沮丧的是,在商业环境中,它可能非常昂贵。 组织会议和交付、签订合同和采购 如果日期不明确,机票可能会非常困难。

    ISO 8601 通过制定国际标准来解决这种不确定性 约定的日期表示方式:

    YYYY-MM-DD

    例如,2012 年 9 月 27 日表示为 2012-09-27。

    https://www.iso.org/iso-8601-date-and-time-format.html

    第二 -
    如果由于某种原因您使用的是旧的 hive 版本并且您必须使用字符串来保存您的日期,我强烈建议您避免使用任何其他日期格式,原因有两个:

    1. 这是日期函数唯一支持的格式。
    2. 这种格式允许正确的字母比较,例如-
    '2017-01-22' > '2016-09-22' 但 '01-22-2017'

    【讨论】:

      猜你喜欢
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      相关资源
      最近更新 更多