文章目录
一、日期函数
| current_date() | 获取年月日 | select current_date(); |
|---|---|---|
| current_time() | 获得时分秒 | select current_time(); |
| current_timestamp() | 获得年月日时分秒 | select current_timestamp(); |
| now() | 和current_timestamp一样 | select now(); |
| date(datetime) | 获datetime参数的时间 | select date(now()); |
| date_add(date, interval 时间) | 在日期的基础上加时间 | select date_add('2017-10-28', interval 10 day);//year、month、day、hour、minute、second |
| date_sub(date, interval 时间) | 在日期的基础上减去时间 | select date_sub('2017-10-1', interval 2 month); |
| datediff(date1, date2) | 两个日期相差多少天 | select datediff('2017-10-10', '2016-9-1'); |
二、字符串函数
| charset(str) | 获取字符串使用的字符集 | select charset(ename) from emp;//查找emp表中ename列的字符集是什么 |
|---|---|---|
| concat(str1, str2...) | 将字符串连接 | select concat('你好',ename) from emp;// 将表emp中列和'你好'字符串拼接 |
| instr(str, substr) | 获取substr在str中首次出现的位置,没有返回0 | select instr('abcde', 'cd');//返回3 |
| ucase(str) | 获取转换成大写后的字符串 | |
| lcase(str) | 获取转换成小写后的字符串 | |
| left(str, length) | 从字符串的左边开始,向后截取length个字符 | select left('abcde', 2);//返回ab |
| length(str) | 返回字符串占用字节数 | select length(name) from student;//求表student中列name占用字节数 |
| replace(列/str, search_str, replace_str) | 将列中的search_str替换成replace_str | select replace(ename, 's', '上海') from emp;//将表emp中列ename中每一个s替换为上海 |
| strcmp(str1, str2) | 逐字符比较两个字符串的大小,相等返回0,前者大返回1,后者大返回-1 | select strcmp('bcd', 'abc');//返回1 |
| substring(列/str, position [, length]) | 从字符串的position开始,向后截取length个字符 | select substring(ename, 2, 3) from emp;//将表emp中截取列ename中每一个从第2开始向后截取3个字符 |
| ltrim(str)、rtrim(str)、trim(str) | 去除字符串的前空格、后空格、前后空格 | select trim(' abcd ');//返回abcd |
三、数学函数
| abs(number) | 绝对值 | select abs(-10);//返回10 |
|---|---|---|
| bin(number) | 十进制转换成二进制 | select bin(10);//返回1010 |
| hex(number) | 十进制转换成十六进制 | select hex(10);//返回A |
| conv(number, from_base, to_base) | from_base进制转换成to_base进制 | select conv(10,10,2);//返回1010 |
| ceiling(number) | 向上取整 | select ceiling(3.3);//返回4还有select ceiling(-3.3);//返回-3 |
| floor(number) | 向下取整 | select ceiling(3.3);//返回3还有select ceiling(-3.3);//返回-4 |
| format(number, n) | 格式化,保留n位小数(四舍五入) | select format(3.14159,2);//返回3.14 |
| rand() | 生成随机浮点数,范围 [0.0, 1.0) | select floor(rand()*100);//返回随机1-100 |
| mod(number, denominator) | 求余 | select mod(10,3);//返回1 |
四、其他函数
| user() | 返回当前用户名和主机名 | select user(); |
|---|---|---|
| md5() | 对一个字符串进行md5摘要,得到一个32位字符串 | select md5('abcde'); |
| database() | 显示当前正在使用的数据库 | select database(); |
| password() | 数据进行加密 | select password('abcde'); |
| ifnull(str1,str2) | 第一个参数不为null则返回第一个参数,否则返回第二个参数 | select ifnull(null,'a');//第一个数据是null就返回第二个参数 |
注意:内部数据形成摘要,不是明文存储,有利于保护数据