Hive 之 常用函数

一 时间函数

unix_timestamp(): 当前UNIX 系统时间,返回一个bigint类型的数字

unix_timestamp(stringdate):将一个字符串时间转化为bigint类型数字

to_date(stringtimestamp) 根据时间戳返回当前日期字符串啊;2.1之后返回一个Date对象

year(stringdate) year("1970-01-01") = 1970

quarter(date/timestamp/string)quarter('2015-04-08') = 2

month(stringdate) month("1970-11-01") = 11

day(stringdate) dayofmonth(date) :

day("1970-11-0100:00:00") = 1, day("1970-11-01") = 1

hour(stringdate):

hour('2009-07-3012:58:59') = 12, hour('12:58:59') = 12

minute(stringdate)

minute('2009-07-30 12:58:59') = 58

second(stringdate)

second('2009-07-30 12:58:59') = 59

weekofyear(stringdate) weekofyear("1970-11-01") = 44

datediff(stringenddate, string startdate):

date_add('2008-12-31',1) = '2009-01-01'

date_add(stringstartdate, int days):

date_add('2008-12-31',1) = '2009-01-01'

date_sub(stringstartdate, int days):

date_sub('2008-12-31',1) = '2008-12-30'

from_utc_timestamp(timestamp,string timezone):转换时区

from_utc_timestamp('1970-01-0108:00:00','PST') returns 1970-01-01 00:00:00

to_utc_timestamp(timestamp,string timezone):

to_utc_timestamp('1970-01-0100:00:00','PST') returns 1970-01-01 08:00:00.

current_date()返回当前日期

current_timestamp:返回当前时间戳

last_day(stringdate):返回日期该月的最后一天
months_between(date1, date2)计算两个日期之间的月份

date_format(date/timestamp/stringts, string fmt):日期格式化

date_format('2015-04-08','y') = '2015'

 

二 条件函数

if(booleantestCondition, T valueTrue, T valueFalseOrNull):

SELECTIF('1'=='2',TRUE,FALSE) result FROM dept;

isnull(a ) 返回TRUE或者FALSE

isnotnull( a ) 返回TRUE或者FALSE

nvl(Tvalue, T default_value) 如果值为空,返回默认值

COALESCE(Tv1, T v2, ...),如果不为空返回第一个,如果为空,返回空

CASEa WHEN b THEN c [WHEN d THEN e]* [ELSE f] END

Whena = b, returns c; when a = d, returns e; else returns f.

CASEWHEN a THEN b [WHEN c THEN d]* [ELSE e] END

Whena = true, returns b; when c = true, returns d; else returns e.

 

三 String类型的函数

ascii(stringstr)

base64(binarybin)

concat(string|binaryA, string|binary B...)

initcap(stringA):首字母大写,其余小写,单词以空格分割

upper(stringA) :所有字符大写

lower(stringA):所有字符小写

trim(stringA):去空格

substring_index(stringA, string delim, int count):

从count个分割符delim,截取之前的数据

substring_index('www.apache.org','.', 2) = 'www.apache'

substr(string|binaryA, int start, int len) substring(string|binary A, int start, int len)

substr('foobar',4, 1) results in 'b' 

substr(string|binaryA, int start) substring(string|binary A, int start)

substr('foobar',4) results in 'bar'


split(string str, string pat):接受一个正则表达式,返回一个数组


str_to_map(text[, delimiter1, delimiter2]):转换为map,第一个分隔符转换为KEY-VALUE;

第二个分隔符将KEY-VALUE转换为key和 value然后存如map,默认第一个是,第二个是=


reverse(string A);反转字符串

replace(string A,string OLD, string NEW):替换值

regexp_replace(stringINITIAL_STRING, string PATTERN, string REPLACEMENT):正则表达式替换

length(string A):返回字符串长度

 

你可能感兴趣的:(hive,函数)