MySQL常用函数——字符串函数、数值函数、日期函数

文章目录

    • 1、字符串函数
      • 1.1、`concat`
      • 1.2、`insert`
      • 1.3、字符串转换大小写
        • 1.3.1、`lower`
        • 1.3.2、`upper`
      • 1.4、获取两边的指定个数的字符串
        • 1.4.1、`left`
        • 1.4.2、`right`
      • 1.5、去除字符串空格
        • 1.5.1、`ltrim`
        • 1.5.2、`rtrim`
        • 1.5.3、`trim`
      • 1.6、填充字符串
        • 1.6.1、`lpad`
        • 1.6.2、`rpad`
      • 1.7、`repeat`
      • 1.8、`strcmp`
      • 1.9、`replace`
      • 1.10、`substring`
    • 2、数值函数
      • 2.1、`abs`
      • 2.2、`ceil`
      • 2.3、`float`
      • 2.4、`mod`
      • 2.5、`rand`
      • 2.6、`round`
      • 2.7、`truncate`
    • 3、日期时间函数
      • 3.1、`curdate`和`current_date`
      • 3.2、`curtime`和`current_time`
      • 3.2、`now`
      • 3.3、`year`
      • 3.4、`weekday`
      • 3.4、`date_format`

1、字符串函数

函数 功能
concat(s1,s2,…sn) 连接s1,s2,…,sn为一个字符串
insert(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr
lower(str) 将字符串str中字符变为小写
upper(str) 将字符串str中字符变为大写
left(str,x) 返回字符串str最左边的x个字符
right(str,x) 返回字符串str最右边的x个字符
lpad(str,n,pad) 用字符串pad对str最左边进行填充,直到长度为n个字符长度
rpad(str,n,pad) 用字符串pad对str最右边进行填充,直到长度为n个字符长度
ltrim(str) 去掉字符串str左侧的空格
rtrim(str) 去掉字符串str右侧的空格
repeat(str,x) 返回str重复x次的结果
replace(str,a,b) 用字符串b替换字符串str中所有出现的字符串a
strcmp(s1,s2) 比较字符串s1和s2
trim(str) 去掉字符串行尾和行头的空格
substring(str,x,y) 返回从字符串str x位置起y个字符长度的字串

1.1、concat

concat(s1,s2,......sn):连接s1,s2,.....,sn为一个字符串(类似于可变参数)。

select 'abc', concat('abc','123'), concat('abc','123','789');
#结果为:abc;abc123;abc123789

1.2、insert

insert(str,x,y,instr):将字符串str从第x位置开始,y个字符长的子串替换为字符串instr

select insert('abcdefg',2,4,'123');
#结果为:a123fg

1.3、字符串转换大小写

1.3.1、lower

lower(str):将字符串str中字符变为小写

select lower('abcDEFg');
#结果为:abcdefg

1.3.2、upper

upper(str):将字符串str中字符变为大写

select upper('abcDEFg');
#结果为:ABCDEFG

1.4、获取两边的指定个数的字符串

1.4.1、left

left(str,x):返回字符串str最左边的x个字符

select left('abcdefg',3);
#结果为:abc

1.4.2、right

right(str,x):返回字符串str最右边的x个字符

select right('abcdefg',3);
#结果为:efg

1.5、去除字符串空格

1.5.1、ltrim

ltrim(str):去掉字符串str左侧的空格

select ltrim('  abc  ');
#结果为:abc  

1.5.2、rtrim

rtrim(str):去掉字符串str右侧的空格

select rtrim('  abc  ');
#结果为:  abc

1.5.3、trim

trim(str):去掉字符串str两端的空格

select trim('  abc  ');
#结果为:abc

1.6、填充字符串

1.6.1、lpad

lpad(str,n,pad):用字符串padstr最左边进行填充,直到长度为n个字符长度

select 'abcdefg',lpad('abc',5,'*');
#结果为:**abc

1.6.2、rpad

rpad(str,n,pad):用字符串padstr最右边进行填充,直到长度为n个字符长度

select 'abcdefg',rpad('abc',5,'*');
#结果为:abc**

1.7、repeat

repeat(str,x):返回str重复x次的结果

select repeat('abc',3);
#结果为:abcabcabc

1.8、strcmp

strcmp(s1,s2):比较字符串s1s2

select strcmp('abc','abcd');
#结果为:-1
select strcmp('abc','abc');
#结果为:0
select strcmp('abc','ab');
#结果为:1

1.9、replace

replace(str,a,b):用字符串b替换字符串str中所有出现的字符串a

select replace('abcdabag','ab','12');
#结果为:12cd12ag

1.10、substring

substring(str,x,y):返回从字符串strx位置起y个字符长度的字串

select substring('abcdefg',2,5);
#结果为:bcdef

2、数值函数

函数 功能
abs(x) 返回x的绝对值
ceil(x) 返回大于x的最小整数值
floor(x) 返回小于x的最大整数值
mod(x,y) 返回x/y的模
rand() 返回0~1内的随机值
round(x,y) 返回参数x的四舍五入的有y位小数的值
truncate(x,y) 返回数字x截断为y位小数的结果

2.1、abs

abs(x):返回x的绝对值

select abs(-2);
#结果为:2

2.2、ceil

ceil(x):返回大于x的最小整数

select ceil(4.5)
#结果为:5

2.3、float

float(x):返回小于x的最大整数

select floor(4.5);
#结果为:4

2.4、mod

mod(x,y):返回x/y的模(余数)

select mod(10,3);
#结果为:1

2.5、rand

rand():返回0-1的随机数

select rand();
#结果为:0.7569426025794285

2.6、round

round(x,y):返回参数x的四舍五入的有y位小数的值

select round(5.4);
#结果为:5
select round(4.15922,2);
#结果为:4.16

2.7、truncate

truncate(x,y):返回x截断为y位小数的结果

select truncate(4.15922,3);
#结果为:4.159

3、日期时间函数

函数 功能
curdate() 返回当前日期
curtime() 返回当前时间
now() 返回当前的日期和时间
unix_timestamp(date) 返回日期date的unix时间戳
from_unixtime 返回unix时间戳的日期值
week(date) 返回日期date为一年中的第几周
year(date) 返回日期date的年份
hour(time) 返回time的小时值
minute(time) 返回time的分钟值
monthname(date) 返回日期date的月份名
date_format(date,fmt) 返回按字符串fmt格式化日期datee值
date_add(date,interval expr type) 返回一个日期或时间值加上一个时间间隔的时间值
datediff(expr,expr2) 返回起始时间expr和结束时间expr2之间的天数

3.1、curdatecurrent_date

select curdate()
#结果为:2020-04-07

3.2、curtimecurrent_time

select curtime()
#结果为:13:41:58

3.2、now

select now()
#结果为:2020-04-07 13:42:34

3.3、year

select year(now());

3.4、weekday

select weekday(now())

3.4、date_format

select date_format(now(),'%y年%m月%r日')
#结果为:20年04月01:47:43 PM日

你可能感兴趣的:(MySQL)