Hive中的日期转换来自不同的格式

时间:2017-03-06 15:27:23

标签: date hadoop hive hiveql

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

1 个答案:

答案 0 :(得分:0)

1st -
 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.这是日期功能支持的唯一格式 这种格式允许正确的字母比较,例如, -
'2017-01-22'> '2016-09-22'但'01 -22-2017'< '09 -22-2016'