mysql的函数很多,具体可以请参照mysql API
1.日期与时间函数
- CURDATE() 返回当前日期
- CURTIME() 返回当前时间
- MONTH(d)返回日期d中的月份值,范围为0~12
例1:
mysql> select curdate(),curtime(),month(birthday) from user;
结果如下:
+------------+-----------+-----------------+
| curdate() | curtime() | month(birthday) |
+------------+-----------+-----------------+
| 2019-05-03 | 10:25:22 | 2 |
| 2019-05-03 | 10:25:22 | 7 |
| 2019-05-03 | 10:25:22 | 3 |
+------------+-----------+-----------------+
2.字符串函数
- CHAR_LENGTH(s) 计算字符串s个数
- UPPER(s) 把所有字母转为大写
- LOWER(S) 把所有字母转为小写
例2:
mysql> select name,char_length(name),upper(name),lower(name) from user;
+----------+-------------------+-------------+-------------+
| name | char_length(name) | upper(name) | lower(name) |
+----------+-------------------+-------------+-------------+
| lisi | 4 | LISI | lisi |
| zhangsan | 8 | ZHANGSAN | zhangsan |
| wangwu | 6 | WANGWU | wangwu |
+----------+-------------------+-------------+-------------+
3.数学函数
- ABS(x) 求绝对值
- SQRT(x)求平方根
- MOD (x,y)求余
mysql> select sqrt(4),mod(9,2),abs(-2) from user;
+---------+----------+---------+
| sqrt(4) | mod(9,2) | abs(-2) |
+---------+----------+---------+
| 2 | 1 | 2 |
| 2 | 1 | 2 |
| 2 | 1 | 2 |
+---------+----------+---------+
4.加密函数
- PASSWORD(str) 一般对用户的密码加密,不可逆。
mysql> insert into user values(null,'2000-1-1','xiaohei',6,password('123456'));
- MDS(str) 普通加密 不可逆
mysql> insert into user values(null,'2000-1-1','xiaohei',6,md5('123456'));
- ENCODE(str,pswd str) 加密函数,结果是一个二进制数,必须用BLOB类型的字段来保存它。
mysql> insert into user values(null,'2006-1-1','xiaomi',9,md5('123456'),encode('123456','aa'));
| id | birthday | name | num | password | pp |
| 7 | 2006-01-01 00:00:00 | xiaomi | 9 | e10adc3949ba59abbe56e057f20f883e | ÖVÒ
- DECODE(crypt_str ,pswd str) 解密函数
select decode(pp,'aa') from user where id=7;
+-----------------+
| decode(pp,'aa') |
+-----------------+
| 123456 |
+-----------------+
注:这里的 ‘pp’ 是存储加密字段对应的列名,'aa' 对应ENCODE(str,pswd str)的pswd str