hive 脚本开发用到的函数总结用法
UNIX_TIMESTAMP 将日期变成时间戳,如果时间的格式是
yyyy-MM-dd HH:mm:ss,那么就可以直接写了,如下
unix_timestamp(‘2019-08-15 16:40:00’),如果不满足这种格式的话,那就得自己定义了,例如 UNIX_TIMESTAMP(‘20001221’,‘yyyyMMdd’),否则的话,那就会返回null
FROM_UNIXTIME 将时间戳变成日期格式,这个函数的值必须收bigint类型,所一般都会和上面的函数一起用,上面先转成时间戳格式,然后再利用这个函数转成日期,他的值也必须是10位,如果是13位的话也要转换成10位,然后类型自己定义,可以到天,也可以到秒,例如
from_unixtime(1565858389,‘yyyy-MM-dd HH:mm:ss’)
from_unixtime(1565858389,‘yyyy-MM-dd’)
DATEDIFF
DATEDIFF(STRING ENDDATE,STRING STARTDATE)
返回值: INT
说明: 返回结束日期减去开始日期的天数。
SELECT DATEDIFF(‘2018-12-22’,‘2018-12-12’)
结果为:1
日期增加函数: DATE_ADD 语法: DATE_ADD(STRING STARTDATE, INT DAYS)
返回值: STRING
说明: 返回开始日期STARTDATE增加DAYS天后的日期
例如:HIVE>SELECT DATE_ADD(‘2018-12-12’,12)
结果为:2018-12-24
日期减少函数: DATE_SUB语法: DATE_SUB (STRING STARTDATE,INT DAYS)
返回值: STRING
说明: 返回开始日期STARTDATE减少DAYS天后的日期。
例如:HIVE>SELECT DATE_SUB(‘2018-12-24’,10)
结果:2018-12-14
REGEXP_REPLACE
语法: regexp_replace(string A, string B, string C)
操作类型: strings
返回值: string
说明: 将字符串A中的符合java正则表达式B的部分替换为C
SUSBTR
语法: SUBSTR(string A, INT 1, INT 6)
操作类型: strings
返回值: string
说明: 将字符串A截取从第一位到第六位。