32求余取整 hive hive 求余数

您所在的位置:网站首页 sql除数取整 32求余取整 hive hive 求余数

32求余取整 hive hive 求余数

2023-07-07 00:37| 来源: 网络整理| 查看: 265

1.数学运算

+,-,*,/ ,%

2.比较运算

>, select round(3.1415926,4) from lxw_dual; 3.1416

(3) 向下取整函数: floor() 语法: floor(double a) 返回值: int 说明: 返回小于a的最大整数 举例:

hive> select floor(4.5) 4

(4)向上取整函数:ceil() 语法: floor(double a) 返回值: int 说明: 返回大于a的最小整数 举例:

hive> select ceil(4.5) 5

(5)绝对值函数: abs()

hive> select abs(-1) 1

(6)取余函数pmod(),返回余数的绝对值

4.时间函数(1) 日期增加函数:date_add() 语法:date_add(date_string,num) 说明:在原有日期上增加天数 举例:

hive> select date_add('2020-10-26',10) '2020-11-05'

(2) 日期减少函数:date_sub() 语法:date_sub(date_string,num) 说明:在原有日期上减少天数 举例:

hive> select date_sub('2020-10-26',10) '2020-10-16'

(3) 日期差值函数:datediff() 语法:datediff(date_string1,date_string2) 说明:在原有日期上减少天数 举例:

hive> select datediff('2020-10-20','2020-10-10') '10'

(4) 日期转时间戳函数:unix_timestamp() 语法:unix_timestamp(date_string) 说明:将日期转成时间戳。如果date满足yyyy-MM-dd HH:mm:ss的格式,则不需要带参数;如果date不满足 yyyy-MM-dd HH:mm:ss的格式,则需要带上date格式的参数 举例:

hive> select unix_timestamp('2020-10-26','yyyy-MM-dd') 1579968600

(5) 时间戳转日期函数:from_unixtime() 这里只能是10位的时间戳 语法:from_unixtime(时间戳,‘yyyy-mm-dd hh:mm:ss’) 说明:将时间戳转成日期 举例:

hive> select from_unixtime(1579968611,'yyyy-mm-dd hh:mm:ss') '2020-10-26 12:10:11'

对于13位的时间戳,需将其转成10位,也就是秒,再处理

hive>select from_unixtime(cast(endTime/1000 as bigint),'yyyy-MM-dd HH:mm:ss')

(6) 日期时间转日期函数:to_date()

hive>select to_date('2021-01-01 12:21:30') '2021-01-01'

(7) 获取当前日期

hive> select current_date() '2021-09-23'

(8) 日期转周函数:weekofyear()

hive> select weekofyear()

(9) 日期取对应的年/月/日/时/分/秒 select year(),month(),day(),hour(),minute(),second()

(10) 日期转成周几

hive>select case when pmod(datediff('2021-01-01','2018-01-01'),7) =0 then '周一' when pmod(datediff('2021-01-01','2018-01-01'),7) =1 then '周二' when pmod(datediff('2021-01-01','2018-01-01'),7) =2 then '周三' when pmod(datediff('2021-01-01','2018-01-01'),7) =3 then '周四' when pmod(datediff('2021-01-01','2018-01-01'),7) =4 then '周五' when pmod(datediff('2021-01-01','2018-01-01'),7) =5 then '周六' else '其他' end

(11) 日期新增/减少月函数:add_months()

select add_months('2023-04-30',1) 2023-05-31

10.字符串函数(1) 字符串长度函数:length()

hive> select length('afsdf') 5

(2) 字符串连接函数:concat() 语法:concat(str1,str2) 返回值:string 说明:将多个字符串拼接成一个。如果其中有字符串为null,则返回null 举例:

hive> select concat('a','b','c'); abc

(3) 字符串连接函数:concat_ws() 语法:concat_ws(str_sep,str1,str2) 返回值:string 说明:如果要拼接的字符串中有null,则忽略;如果str_sep为null,则返回null 举例:

hive> select concat_ws('_','a','b','c'); a_b_c

(4) 字符串截取函数:substr()

hive> select substr('asasdfd',1,3)

(5) 字符串补全函数:lpad() 语法:lpad( string, length, pad_string ) 返回值:string 说明:从左边开始补全。如果字符串本身长度大于补全的长度,会截取成补全的长度 举例:

hive> select lpad('a',5,'0'); 0000a

(6) 字符串补全函数:rpad() 语法:rpad( string, length, pad_string) 返回值:string 说明:从右边开始补全。如果字符串本身长度大于补全的长度,会截取成补全的长度 举例:

sql hive> select rpad('a',5,'0'); a0000

(7) 字符串转大写函数:upper,ucase 语法:upper(string) 返回值:string 说明:将字符串中的字符转成大写 举例:

hive> select upper('asfasas') ASFASAS

(8) 字符串转小写函数:lower, lcase 语法:upper(string) 返回值:string 说明:将字符串中的字符转成小写 举例:

hive> select lower('ADSFAS') adsfas

(9) 去空格函数:trim() 语法:trim(string) 返回值:string 说明:去掉字符串中前后的空格 举例:

hive> select trim(' ADSFAS ') ADSFAS

(10) 数据类型转化函数:cast() 语法:cast( expression as data_type) 返回值:data_type 说明:将一个表达式转换成指定格式,并返回 举例:

hive> select cast( 1.0 as int) 1

(11) 正则表达式替换函数:regexp_replace()

select regexp_replace('fwe-vkof-ueqw-ewe','-.+?-','') fweueqw-ewe

(12) 正则表达式截取函数:regexp_extract() 语法:regexp_extract(string,正则表达式,参数) 返回值:string 说明:参数=0,返回正则表达式匹配的所有字符串;参数=1,返回正则表达式匹配中第一个()匹配的字符串 举例:

select regexp_extract('fwe-vkof-ueqw-ewe','-(.+?)-',1)

(13) json解析函数:get_json_object() 语法:get_json_object(json字符串,'$.键 ') 返回值:string 说明:用于解析json字符串 举例:

select get_json_object('{'name':'daisy' ,'sex':'female' }','$.name') daisy

(14) 分割字符串函数:split() 语法:split(string,分割字符) 返回值:数组 说明:分割字符中如果包含特殊字符,需要转义 举例:

select split('fwe-vkof-ueqw-ewe','-')

(15) 一行转多行。数组按列输出:lateral view explode() 语法:lateral view explode(字段名) 表别名 列别名 返回值:string 说明:固定组合,记住。一般在过滤之前执行 举例:

select movie,tbl.type from movie_info lateral view explode(split(category,',')) tbl as type;

(16) 多行转一行。collect_set(),collect_list() 语法:collect_set(),collect_list() 返回值:数组 说明:前者返回去重后的数组,后者返回不去重的。一般与group by 组合使用 举例:

select user_id,collect_set(package_name) from adhoctemp.tmp_dwx5323361_20210306_test group by user_id



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3