--字符函数----------------------------------------------
1.length
>>(1)获取参数值的字节个数。(查看客户端字符集 show variables like '%char%';)
例:select length('value'); →结果:5
例:SELECT LENGTH('数据库value'); →结果:14.(字符集为utf8的情况下一个汉字=3)
2.concat
>>(1)拼接字符串
例:SELECT CONCAT(first_name,' ',last_name) AS 'name' ,department_id
3.upper,lower
>>(1)upper变为大写
例:SELECT UPPER('john');
>>(2)lower变为小写
例:SELECT LOWER('JOHN');
#将姓大写,名小写,拼接之后输出
→SELECT CONCAT(UPPER(last_name),' ',LOWER(first_name)) AS NAME FROM employees;
4.substr,substring
>>(1)截取字符串:索引从1开始。截取从指定索引处到后面所有的字符
例:SELECT SUBSTR('仰望星空',2) AS out_put; →结果【望星空】
>>(2)截取从指定索引处到 指定长度的字符
例:SELECT SUBSTR('仰望星空',2,2) AS out_put;→结果【望星】
5.instr
>>(1)返回子串第一次出现的索引,如果找不到则返回0。
例: SELECT INSTR('仰望星空','星'); →结果【3】
6.trim
>>(1)去掉字符串前后的空格。
例: SELECT TRIM(' 仰望星空 ');→结果【仰望星空】
>>(2)掉字符串前后的指定字符。
例: SELECT TRIM('a' FROM 'aaaaa仰望星空aaaaaaaaaaa');→结果【仰望星空】
7.lpad
>>(1)用指定字符实现左填充指定长度。
例: SELECT LPAD('星空',5,'*'); →结果【***星空】
>>(2)若指定长度小于字符串长度,则left截取字符串。
例: SELECT LPAD('星空',1,'*'); →结果【星】
8.rpad
>>(1)用指定字符实现右填充指定长度。
例: SELECT RPAD('星空',5,'*'); →结果【星空***】
>>(2)若指定长度小于字符串长度,则截取字符串。
例: SELECT RPAD('星空',1,'*'); →结果【星】
9.replace
>>(1)字符替换。
例: SELECT REPLACE('星星星星空','星','天'); →结果【天天天天空】
--数学函数----------------------------------------------
1.round
>>(1)四舍五入
例:SELECT ROUND(1.22); →结果:【1】
例:SELECT ROUND(1.62); →结果:【2】
>>(2)保留小数位
例:SELECT ROUND(1.62622,2); →结果:【1.63】
2.ceil
>>(1)向上取整,返回>=该参数的最小整数。
例:SELECT CEIL(1.22); →结果:【2】
例:SELECT CEIL(1.00); →结果:【1】
3.floor
>>(1)向下取整,返回<=该参数的最大整数。
例:select floor(1.22); →结果:【1】
例:select floor(1.00); →结果:【1】
4.truncate
>>(1)截断,从指定小数位处截断。
例:SELECT TRUNCATE(1.6999,1); →结果:【1.6】
5.mod
>>(1)取余
例:SELECT MOD(10,3); →结果:【1】
--日期函数----------------------------------------------
1.now()
>>(1)返回当前系统日期+时间
例:SELECT NOW(); →结果:【2022-01-05 22:05:33】
2.curdate()
>>(1)返回当前系统日期,不包含时间
例:SELECT CURDATE(); →结果:【2022-01-05】
3.curtime()
>>(1)返回当前系统时间,不包含日期
例:SELECT CURTIME(); →结果:【22:07:25】
4.Year, month, day, hour, minute, second()
>>(1)获取日期的月份
例:SELECT MONTH(NOW());→结果:【1】
>>(2)获取日期的月份的英文
例:SELECT MONTHNAME(NOW());→结果:【January】
5.str_to_date()
>>(1)将字符串转化成日期格式
例:SELECT STR_TO_DATE('2017-01-06 10:20:30','%Y-%m-%d %H:%i:%s');
→结果:【2017-01-06 10:20:30】
例:SELECT STR_TO_DATE('2017-01-06 10:20:30','%Y-%m-%d');
→结果:【2017-01-06】
6.date_format()
>>(1)日期格式化
例:SELECT DATE_FORMAT(NOW(),'%Y-%c-%d');→结果:【2022-1-05】
例:SELECT DATE_FORMAT(NOW(),'%d %b %Y %T:%f');
→结果:【05 Jan 2022 22:47:04:000000】
格式 | 描述 |
---|---|
%a | 缩写星期名 |
%b | 缩写月名 |
%c | 月,数值 |
%D | 带有英文前缀的月中的天 |
%d | 月的天,数值(00-31) |
%e | 月的天,数值(0-31) |
%f | 微秒 |
%H | 小时 (00-23) |
%h | 小时 (01-12) |
%I | 小时 (01-12) |
%i | 分钟,数值(00-59) |
%j | 年的天 (001-366) |
%k | 小时 (0-23) |
%l | 小时 (1-12) |
%M | 月名 |
%m | 月,数值(00-12) |
%p | AM 或 PM |
%r | 时间,12-小时(hh:mm:ss AM 或 PM) |
%S | 秒(00-59) |
%s | 秒(00-59) |
%T | 时间, 24-小时 (hh:mm:ss) |
%U | 周 (00-53) 星期日是一周的第一天 |
%u | 周 (00-53) 星期一是一周的第一天 |
%V | 周 (01-53) 星期日是一周的第一天,与 %X 使用 |
%v | 周 (01-53) 星期一是一周的第一天,与 %x 使用 |
%W | 星期名 |
%w | 周的天 (0=星期日, 6=星期六) |
%X | 年,其中的星期日是周的第一天,4 位,与 %V 使用 |
%x | 年,其中的星期一是周的第一天,4 位,与 %v 使用 |
%Y | 年,4 位 |
%y | 年,2 位 |
--其他函数----------------------------------------------
1.select version();查看当前数据库版本。
2.select database();查看当前所在的数据库名。
3.select user();查看当前使用的用户名。