各种运算符
算术运算符:
| % 取模运算 (求最大公约数)
| * 乘
| + 加
| - 减
| / 除
关系运算符:
| < 小于
| <= 小于等于
| <=> 'A'<=>'B'得0和'a'<=>'a'得1 'a' <=> NULL 得0 NULL<=> NULL 得出 1
| > 大于
| >= 大于等于
逻辑运算符:
| ! 逻辑非
| |
| ~
位运算符:
| ^ 按位异或
| & 双目运算符:将两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上
赋值运算符:
| =
| ==
数学函数:
| abs(x) 绝对值
| acos(x) --返回X的反余弦。X值的范围必须在-1和1之间,否则返回 NULL
| atan
| asin
| sin
| cos
| tan
| tanh
| atan2
| rand() rand(Int seed) double
| ceil --3.2 -> 4
| ceiling
| floor --3.2 -> 3
| round
| exp(d) --e的d幂次方
| ln
| log
| log10
| log1p
| log2
| pow
| power
| sqrt --平方根
| cbrt --立方根
| bin
| conv(BIGINT num,INT from_base,INT to_base)
| hex
| base64
| unbase64
| unhex
| pmod(INT i1,Int i2) --i1对i2取模 INT、double
| radians --角度值转弧度值
| degrees --弧度值转角度值
| positive -- \+i
| negative -- \+d
| sign(double d) --d是正数,返回float1.0,负数返回-1.0,否则返回0.0
| e
| pi
日期/时间函数(见《hive sql常用整理-自用 》hive sql常用整理-自用_好好好你说的都对的博客-CSDN博客)
| add_months(date,months) --添加月份(无论带不带时间,都只返回日期)
| to_date --返回日期"2017-12-01" to_date(“1970-01-01 00:00:00″) = “1970-01-01″
| year
| month
| day
| hour
| second
| minute
| unix_timestamp(STRING date) --转换成unix时间戳,格式必须是(yyyy-MM-dd HH:mm:ss),如果格式不对返回0, unix_timestamp('2017-12-01 11:11:11') = 数字
unix_timestamp(STRING date,STRING pattern) --同上,只是指定格式 unix_timestamp('2017-12-01','yyyy-MM-dd') = 数字
unix_timestamp() --获取当前时间戳
| to_unix_timestamp
| to_utc_timestamp
| timestamp
| weekofyear
| date
| date_add
| date_format
select date_format(‘2019-04-30’,‘yyyyMMdd’) as day; --返回:20190430
| date_sub
| datediff('string enddate','string startdate') --两个时间参数的日期之差
| dayofmonth
| dayofyear
| next_day
| months_between
| last_day --返回本月最后一天
| trunc --TRUNC(date,[fmt]) --select trunc('2017-12-03','mm'); //2017-12-01 当月第一天
--select trunc('2017-12-03','yyyy'); //2017-01-01 当年第一天
聚合函数:
| collect_set(col) --返回集合col元素重排后的数组,把下面的去重
collect_set(0) 具有稳定性排序,以后每次跑都是同一个,但性能差一点
first(0) 不是稳定性排序,随机的,但性能好一些,所以影响的关键字段最好具有稳定性
| collect_list --collect_list函数返回的类型是array< ? >类型,?表示该列的类型 (列表&#