MySQL_函数

目录

  • 一、整数函数
    • 1. 获取整数的函数---ceil()---floor()
    • 2. 四舍五入的函数---round()
    • 3. 截断函数---truncate(x,y)
    • 4. 取模函数---mod(x,y)
  • 二、字符函数
    • 1. 字符串连接函数---concat()---concat_ws()
    • 2. 大小写转换函数---lower()---upper()
    • 3. 求字符串长度函数---length()
    • 4. 删除空格函数---ltrim()---rtrim()--trim()
    • 5. 截取字符串函数--substring()
    • 6. 获取指定长度的字符串函数---left()---right()
    • 7. 替换函数---replace()
    • 8. 格式化函数---format()
  • 三、日期时间函数
    • 1. 获取当前日期的函数---curdate()--current_date()
    • 2. 获取当前时间的函数---curtime()---current_time()
    • 3. 获取当前日期和时间的函数---now()---sysdate()
    • 4. 日期的运算的函数---date_add()
    • 5. 日期之间的间隔天数的函数---datediff()
    • 6. 日期格式化---date_format()

一、整数函数

1. 获取整数的函数---ceil()---floor()

  1. ceil(x):返回大于x的最小整数值
    select ceil(28.55);
    结果:29
    不管小数点后面的数值是几,都会加1
  2. floor(x):返回小于x的最大整数值
    select floor(28.55);
    结果:28
    不管小数点后面的数值是几,都将被舍弃

2. 四舍五入的函数---round()

  1. round(x):返回最接近x的整数,即对x四舍五入
    select round(28.55);
    结果:29
  2. round(x,y):返回最接近x的数,其值保留y位
    select round(28.55,1);
    结果:28.6
    select round(28.55,0);
    结果:29
    select round(28.55,-1);
    结果:30

3. 截断函数---truncate(x,y)

select truncate(28.55,1);
结果:28.5
select truncate(28.55,0);
结果:28
select truncate(28.55,-1);
结果:20

和获取整数函数(ceil)不同的是,阶段函数(truncate)能控制位数

4. 取模函数---mod(x,y)

select mod(11,2);
结果:1

二、字符函数

1. 字符串连接函数---concat()---concat_ws()

  1. concat(s1,s2)
    select concat("hello",'world');
    结果:hellowoeld
    返回的结果为连接参数产生的字符串,如果任何一个参数为NULL,则返回的值为NULL
  2. concat_ws(x,s1,s2);
    select concat_ws('&','hello','world');
    结果:hello&world
    x是一个分隔符,放在字符串的中间,如果分隔符是NULL,那么结果就是NULL
  3. 为空的可能性
    select concat(null,'one','two');
    结果:null
    select concat('null','one','two');
    结果:nullonetwo
    select concat_ws('---','one','null');
    结果:one---null
    select concat_ws('---','one',null);
    结果:one
    select concat_ws(null,'one','two')
    结果:null

2. 大小写转换函数---lower()---upper()

  1. 转化为小写:lower(str)
    select lower('HELLO WOELD');
    结果:hello world
  2. 转坏为大写:upper(str)
    select upper('hello woeld');
    结果:HELLO WORLD

3. 求字符串长度函数---length()

select length('hello');

4. 删除空格函数---ltrim()---rtrim()--trim()

select ltrim(' hello ');
结果:hello
左侧空格被删除
select rtrim(' hello ')
结果:hello
右侧空格被删除
select trim(' hello ');
结果:hello
两侧空格被删除

5. 截取字符串函数--substring()

select substring('hello world',1,5);
结果:hello
select substring('hello world',-3,2);
结果:rl

6. 获取指定长度的字符串函数---left()---right()

select left('hello world',5);
结果:hello
获取最左边的n个字符,也就是5个
select right('hello world',5);
结果:orld
获取最右边的n个字符,也就是5个

7. 替换函数---replace()

select replace('hello world','world','mysql');
结果:hello mysql
如果在参数2在参数1中出现过,那么就会被替换成参数3

8. 格式化函数---format()

select format(12345.678,2);
结果:12345.68
也是四舍五入,只不过最后返回的是字符串
select format(12345.678,0);
结果:12346
如果为0,返回的结果不含小数部分

三、日期时间函数

1. 获取当前日期的函数---curdate()--current_date()

select curdate();
select current_date();
作用一样,如果加0会返回数字,加1的话,日期的天数会加1
select curdate()+0;
结果:20191208
select curdate()+1;
结果:20191209

2. 获取当前时间的函数---curtime()---current_time()

select curtime();
select current_time();
作用一样,如果加0会返回数字,加1的话,时间的秒数会加1
select curtime()+0;
结果:165236
select curtime()+1;
结果: 165237

3. 获取当前日期和时间的函数---now()---sysdate()

select now();
select sysdate();
作用一样,如果加0会返回数字,加1的话,时间的秒数会加1
select now()+0;
结果:20191208165748
select now()+1;
结果: 20191208165749

4. 日期的运算的函数---date_add()

  • year 年
  • month月
  • day天
  • week周
  • hour小时

date_add(date,interval expr type)
date 起始时间。expr 表达式,也就是步长值。type 时间单位
select date_add('2017-01-01',interval 23 hour);
结果: 2017-01-01 23:00:00
select date_add('2017-01-01',interval 1 week);
结果: 2017-01-08

5. 日期之间的间隔天数的函数---datediff()

select datediff('2017-02-01','2017-01-01');
结果:31

6. 日期格式化---date_format()

  • %b:月份的缩写名称(Jan...Dec)
  • %M:月份的全称(January...December)
  • %c:月份,数字形式(0...12)
  • %m:月份,数字形式(00...12)
  • %e:日,数字形式(0...31)
  • %d:日,数字形式(00...31)
  • %Y:4位数的形式表现年份
  • %y:2位数的形式表现年份

select date_format('2020-9-8','%y年的%c月份中的第%e天');
结果:20年的9月份中的第8天

你可能感兴趣的:(MySQL_函数)