目录
- 一、整数函数
- 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()
- ceil(x):返回大于x的最小整数值
select ceil(28.55);
结果:29
不管小数点后面的数值是几,都会加1 - floor(x):返回小于x的最大整数值
select floor(28.55);
结果:28
不管小数点后面的数值是几,都将被舍弃
2. 四舍五入的函数---round()
- round(x):返回最接近x的整数,即对x四舍五入
select round(28.55);
结果:29 - round(x,y):返回最接近x的数,其值保留y位
select round(28.55,1);
结果:28.6select round(28.55,0);
结果:29select round(28.55,-1);
结果:30
3. 截断函数---truncate(x,y)
select truncate(28.55,1);
结果:28.5select truncate(28.55,0);
结果:28select truncate(28.55,-1);
结果:20
和获取整数函数(ceil)不同的是,阶段函数(truncate)能控制位数
4. 取模函数---mod(x,y)
select mod(11,2);
结果:1
二、字符函数
1. 字符串连接函数---concat()---concat_ws()
- concat(s1,s2)
select concat("hello",'world');
结果:hellowoeld
返回的结果为连接参数产生的字符串,如果任何一个参数为NULL,则返回的值为NULL - concat_ws(x,s1,s2);
select concat_ws('&','hello','world');
结果:hello&world
x是一个分隔符,放在字符串的中间,如果分隔符是NULL,那么结果就是NULL - 为空的可能性
select concat(null,'one','two');
结果:nullselect concat('null','one','two');
结果:nullonetwoselect concat_ws('---','one','null');
结果:one---nullselect concat_ws('---','one',null);
结果:oneselect concat_ws(null,'one','two')
结果:null
2. 大小写转换函数---lower()---upper()
- 转化为小写:lower(str)
select lower('HELLO WOELD');
结果:hello world - 转坏为大写: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);
结果:helloselect 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的话,日期的天数会加1select curdate()+0;
结果:20191208select curdate()+1;
结果:20191209
2. 获取当前时间的函数---curtime()---current_time()
select curtime();
select current_time();
作用一样,如果加0会返回数字,加1的话,时间的秒数会加1select curtime()+0;
结果:165236select curtime()+1;
结果: 165237
3. 获取当前日期和时间的函数---now()---sysdate()
select now();
select sysdate();
作用一样,如果加0会返回数字,加1的话,时间的秒数会加1select now()+0;
结果:20191208165748select 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:00select 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天