struct
STRUCT(结构体)是一种复合数据类型,它允许你将多个字段组合成一个单一的值, 常用于处理嵌套数据,例如当你需要在一个表中存储有关另一个实体的信息时。你可以使用 STRUCT 函数来创建一个结构体。STRUCT 函数接受多个参数,每个参数都是结构体的一个字段。字段可以是任何数据类型,包括其他结构体。
示例
数据准备
查询
struct结构体不能使用explode展开数据
Hive内置函数
函数查看
示例
日期函数
补充: 查看当前用户,
使用场景: 封装代码的日志,记录运行代码的用户
在 Unix 和类 Unix 系统中,时间是从 1970 年 1 月 1 日 00:00:00 UTC 开始计算的,这个时间点被称为 Unix 纪元(Epoch)。unix_timestamp()
函数返回的是从 Unix 纪元到指定日期和时间的秒数。
示例1
示例2
查询结果显示为 -28800
,这实际上是一个时间偏移量,表示 UTC 时间与某个特定时区(如 UTC+8)之间的差异。具体来说,-28800
秒相当于 -8
小时,这意味着查询结果考虑了时区差异。
使用pattern的场景, 时间格式默认是年月日时分秒, 有些数据的格式不是标准时间格式,直接写系统无法识别,返回NULL
示例1
示例2
注:和oracle一样,格式不区分大小写
不指定格式时,默认返回的是年月日 时分秒
示例1
示例2
Hive 不支持日期之间的加减,需要借助函数
日期和时间可以直接以字符串的形式使用,Hive 会自动将这些字符串解析为日期或时间类型。(隐式转换)
注: 日期的格式是'2020-01-17', 不能是其他格式
示例1
示例2
day()和dayofmonth()返回值是相同的, day()相当于截取日期里面的日,dayofmonth()返回的是当月的第几天
示例1
示例2
示例3
示例
类似于oracle的to_char函数
示例1
示例2
w今年的第几周, iw不支持
字符串函数
示例
类型转换函数
数学函数
其他函数
isnull()
函数用于检查其参数是否为 NULL
。如果参数是 NULL
,则返回 true
;否则返回 false
isnotnull()与之相反
只支持两个条件的比较
示例1
示例2
参数是一个字符串 'null'
,而不是 NULL
示例3