用户登录
用户注册

分享至

impala date函数

  • 作者: 淡然27112971
  • 来源: 51数据库
  • 2020-10-04
5 Function
指数据库内置的function,不讨论UDF。另外,操作符都不比较了,区别不大。

5.1 数学函数
功能 Oracle Hive Impala
ABS 绝对值,有 有 有
SIN/SINH/ASIN/COS/COSH/ACOS/TAN/TANH/ATAN/ATAN2
三角函数
其中ATAN2接受两个参数(二维平面中的坐标)e5a48de588b63231313335323631343130323136353331333363376530
没有SINH/COSH/TANH/ATAN2 同hive

BITAND 按位与,有
CEIL 天花板值,有 有,还有个别名CEILING 有,同hive
EXP e的多少次,有 有,还有个函数E()返回e 有,同hive
FLOOR 地板值,有 有 有
LN 以e为底的log,有 有 有
LOG 以某个double为底的log,有 有,还有两个特殊底的log:LOG2和LOG10 有,同hive
MOD Oracle的MOD的计算方式为MOD(n2,n1)=n2 - n1 * FLOOR(n2/n1),这与经典取模还不同,比如Oracle的MOD(-11,4)=-3,但经典取模等于1 在hive里取模用PMOD,返回值一定是个正数,比如PMOD(-11,4)=1。但这与经典取模还是不同,比如PMOD(-11,-4)=1,但经典取模等于-3 Impala的PMOD和hive的PMOD相同,另外Impala还有个FMOD和Oracle的MOD相同
POWER 求幂,有 有,还有个别名POW 有,同hive
REMAINDER 取余,REMAINDER(n2,n1)=n2 - n1 * FLOOR(n2/n1)
ROUND 舍入,支持1个参数和2个参数两种版本

另外还有一个BROUND,使用HALF_EVEN舍入模式,见官方手册
有,同Oracle

SIGN 符号函数,有 有 有
SQRT 开方,有 有 有
TRUNC 截取数值的小数点后多少位(如果是负值则往前推)
DEGREES/RADIANS 角度/弧度互转 同hive
POSITIVE/NEGATIVE 相当于在数值前加+/-号(因此没什么卵用) 同hive
PI 返回pi值 同hive
FACTORIAL 阶乘,1.2.0以后才有
CBRT 求立方根,1.2.0以后才有
SHIFTLEFT/SHIFTRIGHT/SHIFTRIGHTUNSIGNED 按位左移/右移/无符号右移
GREATEST/LEAST 返回一串值中的最大/最小值,这串值的类型可以是任意,只要可比较大小(所以其实不是数学函数而是通用比较) 有,1.1.0以后 有

5.2 字符(串)函数
功能 Oracle Hive Impala
ASCII 输入必须char,返回该字符的ascii数值 输入String,返回该String第一个字符的ascii数值 同hive
BASE64 / UNBASE64 将二进制值转为base64的String(UN则是反向)
CONCAT
CONCAT(char1, char2)
char或char2均可为CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, or NCLOB之一

concat(string|binary A, string|binary B)
可以有多个参数
另外提供CONCAT_WS用于指定特殊分隔符的连接
同hive(除了不支持binary类型),且也有CONCAT_WS

DECODE/ENCODE
string decode(binary bin, string charset)
binary encode(string src, string charset)
编码和解码用的,用于支持hive特有的binary类型
(其实oracle和impala也有DECODE,但作用完全不同,见条件函数中的DECODE)

FIND_IN_SET
find_in_set(string str, string strList)
strList是用’,’分割的一组string,该函数将寻找strList中第一个精确匹配的str
同hive

FORMAT_NUMBER 将数字格式化为string
GET_JSON_OBJECT 抽取JSON对象,不常用
IN_FILE
in_file(string str, string filename)
检测str是否为filename对应文件中的某行,不常用

INITCAP 将每个单词(以空白分隔)转换为首字母大写其余小写的形式 同oracle,1.1.0开始有 同oracle
INSTR
{ INSTR
| INSTRB
| INSTRC
| INSTR2
| INSTR4
}
(string , substring [, position [, occurrence ] ])
搜索子串,不同数据类型调用名不同,最多可带四个参数,其中第三个是开始位置,第四个是出现的第几次

instr(string str, string substr)
只接受两个参数
同hive

LENGTH
{ LENGTH
| LENGTHB
| LENGTHC
| LENGTH2
| LENGTH4
}
(char)
串长,不同数据类型调用名不同
有(仅LENGTH) 同hive

LEVENSHTEIN 返回两个串的Levenshtein距离(编辑距离)1.2.0后才有
LOCATE 特殊情况的INSTR,可以指定匹配的开始位置。Oracle因为本来INSTR就支持所以并不需要该函数 同hive
LOWER 转小写 有,且有一个别名叫LCASE 同hive
LPAD / RPAD
LPAD(expr1, n [, expr2 ])
在expr1之前用expr2填充n个字符,如expr2省略默认用n个单空格填充。RPAD类似只是在右边
有,但expr2不能省略 同hive

LTRIM / RTRIM
LTRIM(char [, set ])
去掉char左侧包含在set中的字符,如省略set,则只去除空格符。RTRIM类似只是在右边
有,但没有set参数,即只能去除空格符 同hive
软件
前端设计
程序设计
Java相关