常见的函数有字符串处理函数、日期处理函数等
一、字符串处理
1、‘+’ 加号拼接:
- select 1+2 ----- 3
- select 1+‘2’ ------3
- select ‘1’+2 ------3
- select ‘1xxsds’+ 2 -----3
- select 'xxxsds'+ 2 ------2
总结:用加号拼接时,会转换成求和,所有的内容都会转换成参与拼接的数字类型中精度最大的类型,如果是字符串,则会从字符串中截取前面的数字进行求和,如‘1.23asdfa’ 会截取1.23 ,‘2’ 会转换成2,‘asdfas’转换成0,最后再求和。
2、concat(var,var,var):
- 字符串拼接函数,支持多个参数,如果某个参数是null,则返回的结果是null
- 原样拼接,不进行任何转换
3、字符串长度函数:
- length(str):获取str的长度,汉字是3个字符,其他是一个字符
- char_length(str):统一都是一个字符,不区分汉字
4、instr(source,substr) 字符串位置查找:
- 在source中查找substr子串的开始位置,找到返回位置下标,未找到返回0
5、left(str,length) :截取str字符串,从左侧开始,截取length长度的字符
6、right(str,length): 截取str字符串,从右侧开始,截取length长度的字符
7、字符串截取:start 不能等于0,从1开始的,0的话不能返回任何字符。如果start < 0 ,则从末尾往前数第 abs(str)个位置开始,往后截取
- substring(str,start):截取str,从start位置开始,取后面所有的字符
- substring(str,start,length):截取str,从start位置开始,取后面length长度的字符串
8、首尾去掉指定字符串:
- ltrim(str) :去掉str左侧的空字符,如ltrim(' 12') ----'12'
- rtrim(str):去掉str右侧的空字符,如ltrim('12 ') ----'12'
- trim(str):去掉str 首尾的空字符,如trim(' 12 ') ----'12'
- trim({both(首尾)| leading (开始)| trailing (结尾)}rmstr from str) :从str的开始或者结尾(根据参数决定)去掉rmstr
9、replace(str,from_str,to_str): 将str中的from_str全部替换成为to_str,返回替换后的字符串
10、repeat(str,count):返回count个str拼接结果,如repeat('ss',2) ---'ssss'
11、reverse(str):将str逆序返回
- 应用:获取最后一个‘.’之后的字符串:
- select reverse(substring(REVERSE('001.1.12'),1,instr(REVERSE('001.1.12'),'.')-1)) --- ‘12’
12、INSERT(str,pos,len,newstr):返回字符串str,在位置pos起始的子串且len个字符长的子串由字符串newstr代替。
- select INSERT(‘whatareyou', 5, 3, ‘is') ---- whatisyou
二、日期处理
1、年:select year(now()) ---2019
2、月:select month(now()) --8
3、季度:select quarter(now()) ---3
4、日:select day(now()) --14