Hive 中,可以用String、Date和Timestamp表示日期时间,String 用 yyyy-MM-dd 的形式表示,Date 用 yyyy-MM-dd 的形式表示,Timestamp 用 yyyy-MM-dd hh:mm:ss 的形式表示。这三种数据类型在使用细节上,有一些需要注意的点:
在这里插入图片描述
在这里插入图片描述
Join比较
在两表Join时,会涉及到字段的比较,此时应注意:
如第一张图所示,如果时间信息中不包含时分秒,String 与 Date、Timestamp 表达的时间相同时是可以直接比较的,但是Date和Timestamp之间却不能直接比较的。
如果想比较这两种时间类型,需要用cast函数做转换,如:a_table join b_table on (a_table.timestamp_column = cast(b_table.date_column as timestamp));
如第二张图所示,如果时间信息中包含时分秒,此时String 与 Timestamp 表达的时间相同时是可以直接比较的,Date 不能表示带时分秒的信息。
Insert value
在insert value时,使用者一般用字符串的形式向Hive表中插入value,但是字符串的插入的结果与字段类型相关。如上图所示,图中绿线表示插入成功,红线表示插入失败得到了不想要的结果。
一、相互转化
格式化 date_format
select date_format('2019-04-08', 'yyyy') --得到:2019
select date_format('2019-04-08', 'yyyy-MM') --得到:2019-04
select date_format('2019
hive时间sql
最新推荐文章于 2024-06-28 15:45:17 发布
本文详细介绍了在Hive中如何处理和分析时间戳数据,包括时间戳转换、日期运算和时间窗口聚合等核心概念,旨在帮助数据分析师更好地进行时间序列分析。
摘要由CSDN通过智能技术生成