hive是通过获取到时间戳的形式来获取到时间,然后通过函数FROM_UNIXTIME 转化为日期时间的形式
hive查询时间
查询当前月份 | | 2021-09 |
| 2021-09-17 09:51:42 | |
获取当前时间戳bigint unix_timestamp() | | |
bigint unix_timestamp(string_date) 将格式“yyyy-MM-dd HH:mm:ss”的字符串转成时间戳,如果格式不对返回null | | |
bigint unix_timestamp(string date,string pattern) 将指定时间字符串格式转成时间戳,如果格式不对返回null | | |
string from_unixtime(bigint,format) 将时间戳转为format格式,可以为“yyyy-MM-dd HH:mm:ss”,"yyyy-MM-dd HH","yyyy-MM-dd","yyyyMMdd"等 | | |
string to_date(string timestamp) 返回时间字符串的日期部分 | | |
string datediff(string enddate,string startdate) 计算两个日期相差的天数 | | |
string date_add(string startdate,int days) select date_sub('2018-10-16',6); 开始时间加上days
开始时间减去days |
|
|
current_date 获取当前日期 | | |
current_timestamp 获取当前时间戳 | | |
year(string date) month(string date) day(string date) hour(string date) minute(string date) second(string date) weekofyear(string date) 返回日期中的年\月\日\小时\分钟\秒当前周数 | |
AND | 语法: A AND B 操作类型:boolean 说明:如果A和B均为TRUE,则为TRUE;否则为FALSE。如果A为NULL或B为NULL,则为NULL |
| false |
OR | 语法: A OR B 操作类型:boolean 说明:如果A为TRUE,或者B为TRUE,或者A和B均为TRUE,则为TRUE;否则为FALSE |
| true |
NOT | 语法: NOT A 操作类型:boolean 说明:如果A为FALSE,或者A为NULL,则为TRUE;否则为FALSE | | true |
运算 | 注释 | 代码 | 运算结果 |
is null
is not null | 语法: A IS NULL 操作类型: 所有类型 描述: 如果表达式A的值为NULL,则为TRUE;否则为FALSE 语法: A IS NOT NULL |
| true false true false |
LIKE
| 语法: A LIKE B 操作类型: strings 描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。
| | true ture ture |
REGEXP | 语法: A REGEXP B (java语法: A RLIKE B |
| true |
按位与& | 语法: A & B 操作类型:所有数值类型 说明:返回A和B按位进行与操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。 |
| 0 |
位或操作| | 语法: A | B 操作类型:所有数值类型 说明:返回A和B按位进行或操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系) |
| 12 |
位异或^ | 语法: A ^ B 操作类型:所有数值类型 说明:返回A和B按位进行异或操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。 |
| 12 |
位取反操作 | 语法: ~A 操作类型:所有数值类型 说明:返回A按位取反操作的结果。结果的数值类型等于A的类型。 |
| -7 -5 |
函数 | 语法 | 代码 | 运算结果 |
取整函数round | 语法: round(double a) 返回值: BIGINT 说明: 返回double类型的整数值部分 (遵循四舍五入) | | 3 4 |
指定精度取整函数round | 语法: round(double a, int d) 返回值: DOUBLE 说明: 返回指定精度d的double类型 |
| 3.1416 |
向下取整函数floor | 语法: floor(double a) 返回值: BIGINT 说明: 返回等于或者小于该double变量的最大的整数 |
| 3 25 |
向上取整函数ceil\ceiling | 语法: ceil(double a) 返回值: BIGINT 说明: 返回等于或者大于该double变量的最小的整数 |
| 4 46 |
取随机数函数 | 语法: rand(),rand(int seed) 返回值: double 说明: 返回一个0到1范围内的随机数。如果指定种子seed,则会等到一个稳定的随机数序列 |
| 0.545622741591941 0.000471474603038 0.183029190256739 |
自然指数函数exp | 语法: exp(double a) 返回值: double 说明: 返回自然对数e的a次方 | | 7.38905609893065 2 |
以10为低的对数函数
以2为低的对数函数 对数函数 | 语法: log10(double a) 返回值: double 说明: 返回以10为底的a的对数 语法: log2(double a) 语法: log(double base, double a) |
| 2 3 4 |
幂运算函数 pow\power | 语法: pow(double a, double p) 返回值: double 说明: 返回a的p次幂 |
| 16 |
开平方函数sqrt | 语法: sqrt(double a) 返回值: double 说明: 返回a的平方根 |
| 4 |
二进制函数bin
十六进制函数hex 反转十六进制函数unhex | 语法: bin(BIGINT a) 返回值: string 说明: 返回a的二进制代码表示 语法: hex(BIGINT a) 语法: unhex(string a) |
| 111
11 616263 abc |
进制zh转换函数conv | 语法: conv(BIGINT num, int from_base, int to_base) 返回值: string 说明: 将数值num从from_base进制转化到to_base进制 |
| 11 |
绝对值函数abs | 语法: abs(double a) abs(int a) 返回值: double int 说明: 返回数值a的绝对值 | | 3.9 10.9 |
正取余函数pmod
正弦函数sin 反正弦函数asin | 语法: pmod(int a, int b),pmod(double a, double b) 返回值: int double 说明: 返回正的a除以b的余数 语法: sin(double a) 语法: asin(double a) |
| 3 1 0.7173560908995228 0.8 |
余弦函数cos 反余弦函数acos | 语法: cos(double a) 返回值: double 说明: 返回a的余弦值 语法: acos(double a) |
| 0.6216099682706644
0.9000000000000001 |
positiveh函数 negativeh函数 | 语法: positive(int a), positive(double a) 返回值: int double 说明: 返回a 语法: negative(int a), negative(double a) |
| -5 8 5 -8 |
函数类型 | 举例代码 | 结果 |
1.字符串A的长度 length(string A) 2.字符串反转函数reverse(string A) 3.字符串连接函数concat(string A, string B…) 4.带分隔符字符串连接函数concat_ws(string SEP, string A, string B…)。返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符。 5.字符串截取函数substr(string A, int start),substring(string A, int start) 返回字符串A从start位置到结尾的字符串
| |
|
6.字符串转大写函数upper(string A) ucase(string A) 7.字符串转小写lower(string A) lcase(string A) |
|
|
8.去空格函数trim trim(string A)去除字符串两边的空格 ltrim(string A)去除字符串左边的空格 rtrim(string A)去除字符串右边的空格 |
| |
9.正则表达式替换函数regexp_replace(string A, string B, string C) | | |
10.正则表达式解析函数regexp_extract(string subject, string pattern, int index) | |
|
11.URL解析函数 parse_url(string urlString, string partToExtract [, string keyToExtract]) 返回URL中指定的部分。partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO. | |
|
12.json解析函数 get_json_object(string json_string, string path) 解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。 | | |
13空格字符串函数 space(int n) 返回长度为n的字符串 | | NULL |
14.重复字符串函数 repeat(string str,int n) 返回重复n次后的str字符串 | | |
15.首字符ascii码函数 ascii(string str) 返回字符串str第一个字符的ascii码 | | |
16.左补足函数 lpad(string str, int len, string pad) 右补足函数 rpad(string str, int len, string pad) 将str进行用pad进行左\右补足到len位 | |
|
17.分割字符串函数 split(string str, string pat) 按照pat字符串分割str,会返回分割后的字符串数组 | |
|
18.集合查找函数 find_in_set(string str, string strList) 返回值: int 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0 | |
|
1.个数统计函数count 语法: count(*), count(expr), count(DISTINCT expr[, expr_.]) 说明: count(*)统计检索出的行的个数,包括NULL值的行;count(expr)返回指定字段的非空值的个数;count(DISTINCT expr[, expr_.])返回指定字段的不同的非空值的个数 2.总和统计函数sum 语法: sum(col), sum(DISTINCT col) 说明: sum(col)统计结果集中col的相加的结果;sum(DISTINCT col)统计结果中col不同值相加的结果 3.平均值统计函数avg 语法: avg(col), avg(DISTINCT col) 说明: avg(col)统计结果集中col的平均值;avg(DISTINCT col)统计结果中col不同值相加的平均值 4.最小值min 语法: min(col) 说明: 统计结果集中col字段的最小值 5.最大值max 语法: max(col) | select count(*) select count(distinct t) select sum(t) select sum(distinct t) select avg(t) select avg (distinct t) select min(t) select max(t) | |
6.非空集合总体变量函数 语法: var_pop(col) 非空集样本变量函数 语法: var_samp (col) | ||
7.总体标准偏离函数stddev_pop(col) 语法: stddev_pop(col) 8.样本标准偏离函数stddev_samp (col) 语法: stddev_samp (col) | ||
9.中位数函数 语法: percentile(BIGINT col, p) | ||
10.中位数函数 语法: percentile(BIGINT col, array(p1 [, p2]…)) | ||
11.近似中位数函数 语法: percentile_approx(DOUBLE col, p [, B]) | ||
12.近似中位数函数 语法: percentile_approx(DOUBLE col, array(p1 [, p2]…) [, B]) | ||
13.直方图 语法: histogram_numeric(col, b) |
|
条件函数 | 代码 | 运行结果 |
1.IF函数 if(boolean testCondition, T valueTrue, T valueFalseOrNull) 说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull | | |
2.非空查找函数 COALESCE(T v1, T v2, …) 返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL | | |
3.条件判断函数 CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END 说明:如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f |
| |
4条件判断函数 CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END | |
|
类型 | 注释 | 代码 | 运行结果 |
MAP类型构建函数 | 语法: map (key1, value1, key2, value2, …)
| | {"100":"tom","200":"mary"} |
Struct类型构建函数 | 语法: struct(val1, val2, val3, …) 说明:根据输入的参数构建结构体struct类型 | | {"col1":"tom","col2": "mary","col3":"tim"} |
array类型构建函数 | 语法: array(val1, val2, …) 说明:根据输入的参数构建数组array类型 | | ["tom","mary","tim"] |
类型 | 注释 | 代码 | 运行结果 |
MAP类型访问 | 语法: M[key] 操作类型: M为map类型,key为map中的key值 说明:返回map类型M中,key值为指定值的value值。比如,M是值为{'f' -> 'foo', 'b' -> 'bar', 'all' -> 'foobar'}的map类型,那么M['all']将会返回'foobar' | | tom mary tim |
Struct类型访问 | 语法: S.x 操作类型: S为struct类型 说明:返回结构体S中的x字段。比如,对于结构体struct foobar {int foo, int bar},foobar.foo返回结构体中的foo字段 |
| mary tom |
array类型访问 | 语法: A[n] 操作类型: A为array类型,n为int类型 说明:返回数组A中的第n个变量值。数组的起始下标为0。比如,A是个值为['foo', 'bar']的数组类型,那么A[0]将返回'foo',而A[1]将返回'bar' | | tom tim |
MAP类型长度函数 | arrsy类型长度函数 | cast类型转换函数 |
语法: size(Map<k .V>)
| 语法: size(Array<T>) 返回值: int 说明: 返回array类型的长度 | 类型转换函数: cast 语法: cast(expr as <type>) 返回值: Expected "=" to follow "type" 说明: 返回转换后的数据类型 |
| | |