Hive 时间数据类型

Hive 中,可以用String、Date和Timestamp表示日期时间,String 用 yyyy-MM-dd 的形式表示,Date 用 yyyy-MM-dd 的形式表示,Timestamp 用 yyyy-MM-dd hh:mm:ss 的形式表示。这三种数据类型在使用细节上,有一些需要注意的点:

《Hive 时间数据类型》 Hive 时间数据类型
《Hive 时间数据类型》 Hive 时间数据类型-带时分秒

Join比较

在两表Join时,会涉及到字段的比较,此时应注意:

  1. 如第一张图所示,如果时间信息中不包含时分秒,String 与 Date、Timestamp 表达的时间相同时是可以直接比较的,但是Date和Timestamp之间却不能直接比较的。
    如果想比较这两种时间类型,需要用cast函数做转换,如:a_table join b_table on (a_table.timestamp_column = cast(b_table.date_column as timestamp));
  2. 如第二张图所示,如果时间信息中包含时分秒,此时String 与 Timestamp 表达的时间相同时是可以直接比较的,Date 不能表示带时分秒的信息。
Insert value

在insert value时,使用者一般用字符串的形式向Hive表中插入value,但是字符串的插入的结果与字段类型相关。如上图所示,图中绿线表示插入成功,红线表示插入失败得到了不想要的结果。

    原文作者:OldChicken_
    原文地址: https://www.jianshu.com/p/e18a7fd2de5c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞