字符函数

字符函数作用说明
concat()拼接
instr()找字符串所在位置,如instr(‘abcd’,‘cd’),返回结果为3,即cd位置处于第三位
locate ()找字符串所在位置,与instr相似,不同的是指定查找内容放在前面,如 locate(‘cd’,‘abcdefg’),返回结果为3,即cd所在位置是第三位;
如果后面加数字表示从第几位开始查找,如locate(‘cd’,‘abcdefgcd’,4),返回结果为8,表示从第4位开始查找cd所在位置
length()字符串长度
upper()字符全部返回为大写
lower()字符全部返回为小写
regexp_replace()正则替换,经常使用,下面重点举例说明
split ()字符分割为数组
substr()截取字符串 与java中的substring类似,如substr(‘1999-5-6 12:32:34’,1,8),返回结果为1999-5-6
trim()去除字符前后空格
ltrim()去除字符左边空格
str_to_map()将字符串分割为map格式
encode()转换字符编码,如encode(‘你好’,‘utf-8’),返回中文的‘你好’
reverse字符反转
regexp_extract()分组截取字符串,下面举例说明
format_number()返回数字格式字符串,如(1232.456,2),返回结果为(1232.47),四舍五入保留两位小数;
如果后面不写保留位数,则返回四舍五入的整数
get_json_object()取某json格式的某个对象,如get_json_object(’{“name”:“zs”,“age”:“25”}’,’$.name’),返回结果为zs,格式仿照
lpad()向左用符号补齐目标长度,如lpad(‘abcd’,6,’#’),返回结果为##abcd,即用符号#在字符左侧补齐总长度为6;
若长度不够相当于截取,如lpad(‘abcd’,2,’#’),返回结果为ab
parse_url拿域名,parse_url(‘http://www.baidu.com’,‘HOST’),返回www.baidu.com
initcap()首字母大写

regexp_replace()

正则匹配替换
😬栗子:1.将1995/5.6中的字符’/‘和’.'转换为‘-’,即1995-5-6格式
在这里插入图片描述

2.将1995-5-6 13:24:56.234中的毫秒数‘234’去除
方法1:正则匹
在这里插入图片描述
方法2:split分割
在这里插入图片描述

regexp_extract()

分组截取
😁举个栗子:将字符日期“1999-5-6 13:34:56.0001”中的时分秒取出来
在这里插入图片描述

数学函数

数学函数作用说明
round()保留几位小数,不写表示只保留整数
floor()取整数
ceil()向上取整
rand()随机数
pow()次方,pow(10,2)表示10的平方
sqrt()开根号,负数不能开根号返回结果为null
pmod()取模(取余)
cast()乱入乱入,类型转换函数,cast(“123” as string)+123 返回结果246

求给定日期是星期几

pmod(datediff(‘日期’, ‘任意年任意一个星期日的日期’), 7)
思路:除以7去余数,得到星期数,注意返回值是0~6,0是星期天

日期函数

from_unixtime()

时间转换格式,将时间转换为yyyy-MM-dd hh:mm类似格式,如:from_unixtime(1250234124)
返回: 2009-08-14 15:15:24

若在其中加时间格式,则返回对应时间格式,如from_unixtime(1250234124,‘yyyy-MM-dd’)
返回:2009-08-14

unix_timestamp()

时间戳,内容为空时,返回当前时间的时间戳,输入时间则显示输入时间时间戳

to_date() 转换时间为日期的标准格式

year/ month/ day /weekofdate 年分日 周

current_date() 当前日期标准格式

datediff()

日期差
datediff(current_date,‘1997-08-08’)
返回结果为8347,通过日期差看看自己存在的天数很有意思😁

date_add()

日期加天数
如:date_add(current_date(),2)
表示当前日期加2天

date_sub()

日期减天数
如:date_sub(current_date(),2)
表示当前日期减2天

add_months()

日期加月数
如:add_months(current_date(),7)
表示当前日期加7个月

last_day()

返回该月的最后一天
如:last_day(current_date())
表示当前月的最后一天

next_day()

返回下个星期几的日期
next_day(current_date(),‘MON’)
表示当前时间的下个星期一的日期

条件函数

条件函数作用说明
if(boolean testCondition, T valueTrue, T valueFalseOrNull)如果testCondition 为true就返回valueTrue,否则返回valueFalseOrNull
nvl(T value, T default_value)value为NULL返回default_value,否则返回value
COALESCE(T v1, T v2, …)返回第一非null的值,如果全部都为NULL就返回NULL
CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END如果a=b就返回c,a=d就返回e,否则返回f
CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END如果a=ture就返回b,c= ture就返回d,否则返回e
isnull( a )如果a为null就返回true,否则返回false
isnotnull ( a )如果a为非null就返回true,否则返回false

表生成函数

表生成函数作用说明
explode()列转行,如explode(spilt(‘hellom,world’),’,’)
stack(INT n, v_1, v_2, …, v_k)把k列转换成n行,每行有k/n个字段,其中n必须是常数
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐