目录

  • 一、整数函数
  • 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天