函数
1 数学函数
函数 | 作用 |
ABS(x) | 返回x的绝对值 |
CEIL(x),CEILING(x) | 返回大于或等于x的最小整数 |
FLOOR | 返回小于或等于x的最大整数 |
RAND() | 返回0~1的随机数 |
RAND(X) | 返回0~1的随机数,x值相同时返回的随机数相同 |
SIGN(X) | 返回x的符号。x是负数、0、正数分别返回-1,0和1 |
PI() | 返回圆周率(3.141593) |
TRUNCATE(x,y) | 返回数值x保留到小数点后y位的值 |
ROUND(x) | 返回离x最近的整数 |
ROUND(x,y) | 保留x小数点后y位的值,但截断时要进行四舍五入 |
POW(x,y),POWER(x,y) | 返回x的y次方(x^y) |
SQRT(x) | 返回x的平方根 |
EXP(x) | 返回e的x次方(e^x) |
MOD(x,y) | 返回x除以y的余数 |
LOG(x) | 返回自然对数(以e为底的对数) |
LOG10(x) | 返回以10为底的对数 |
RADIANS(x) | 将角度转换成弧度 |
DEGREES(x) | 将弧度转换成角度 |
SIN(x) | 求正弦值 |
ASIN(x) | 求反正弦值 |
COS(x) | 求余弦值 |
ACOS(x) | 求反余弦值 |
TAN(x) | 求正切值 |
ATAN(x),ATAN2(x,y) | 求反正切值 |
COT(x) | 求余切值 |
例子:
2 字符串函数
函数 | 作用 |
CHAR_LENGTH(s) | 返回字符串s的字符数 |
LENGTH(s) | 返回字符串s的长度 |
CONCAT(s1,s2,...) | 将字符串s1,s2等多个字符串合并为一个字符串 |
CONCAT_WS(x,s1,s2,...) | 同上,但是每个字符串直接要加上x |
INSERT(s1,x,len,s2) | 将字符串s2替换s1的x位置开始长度为len的字符串 |
UPPER(s),UCASE(s) | 将字符串s的所有字母都变成大写字母 |
LOWER(s),LCASE(s) | 将字符串s的所有字母都变成小写字母 |
LEFT(s,n) | 返回字符串s的前n个字符 |
RIGHT(s,n) | 返回字符串s的后n个字符 |
LPAD(s1,len,s2) | 字符串s2来填充s1的开始处,使字符串长度达到len |
RPAD(s1,len,s2) | 字符串s2来填充s1的结尾处,使字符串长度达到len |
LTRIM(s) | 去掉字符串s开始处的空格 |
RTRIM(s) | 去掉字符串s结尾处的空格 |
TRIM(s) | 去掉字符串s开始和结尾处的空格 |
TRIM(s1 from s) | 去掉字符串s中开始和结尾处的字符串s1 |
REPEAT(s,n) | 将字符串s重复n次 |
SPACE(n) | 返回n个空格 |
REPLACE(s,s1,s2) | 用字符串s2替代字符串s中的字符串s1 |
STRCMP(s1,s2) | 比较字符串s1和s2 |
SUBSTRING(s,n,len),MID(s,n,len) | 获取字符串s中的n个位置开始长度为len的字符串 |
LOCATE(s1,s),POSITION(s1 IN s),INSTR(s,s1); | 从字符串s中获取s1的开始位置 |
REVERSE(s) | 将字符串s的顺序反过来 |
ELT(n,s1,s2,...) | 返回第n个字符串 |
例子:
concat
insert
Upper&lower
reverse
3 日期和时间函数
函数 | 作用 |
CURDATE(),CURRENT_DATE() | 返回当前日期 |
CURTIME(),CURRENT_TIME() | 返回当前时间 |
NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP() | 返回当前时间和日期 |
UNIX_TIMESTAMP() | 以UNIX时间戳的形式返回当前时间 |
UNIX_TIMESTAMP(d) | 将时间d以UNIX时间戳的形式返回 |
FROM-UNIXTIME(d) | 把UNIX时间戳的时间转换为普通格式的时间 |
UTC_DATE() | 返回UTC(Universal Coordinated Time)日期 |
UTC_TIME() | 返回UTC时间 |
MONTH(d) | 返回日期d中的月份值,范围是1~12 |
MONTHNAME(d) | 返回日期d中的月份名称,如February |
DAYNAME(d) | 返回日期d是星期几,若Monday |
DAYOFWEEK(d) | 返回日期d是星期几,1表示星期日 |
WEEKDAY(d) | 返回日期d是星期几,0表示星期一 |
WEEK(d) | 计算日期d是本年的第几个星期,范围是0~53 |
WEEKOFYEAR(d) | 计算日期d是本年的第几个星期,范围是1~53 |
DAYOFYEAR(d) | 计算日期d是本年的第几天 |
DAYOFMONTH(d) | 计算日期d是本月的第几天 |
YEAR(d) | 返回日期d中的年份值 |
QUARTER(d) | 返回日期d是第几季度,范围是1~4 |
HOUR(t) | 返回时间t中的小时值 |
MINUTE(t) | 返回时间t中的分钟值 |
SECOND(t) | 返回日期t中的秒钟值 |
EXTRACT(type FROM d) | 从日期d中获取指定的值,type指定返回的值,如YEAR |
TIME_TO_SEC(t) | 将时间转换成秒 |
SEC_TO_TIME(s) | 将秒为单位的时间s转换成时分秒的格式 |
TO_DAYS(d) | 计算日期d~0000年1月1日的天数 |
FROM_DAYS(n) | 计算从0000年1月1日开始n天后的日期 |
DATEDIFF(d1,d2) | 计算日期d1~d2之间相隔的天数 |
ADDDATE(d,n) | 计算起始日期d加上n天的日期 |
ADDDATE(d,INTERVAL expr type) | 计算起始日期d加上一个时间段后的日期 |
DATE_ADD(d,INTERVAL expr type) | 同上 |
SUBDATE(d,n) | 计算起始日期d减去n天的日期 |
SUBDATE(d,INTERVAL expr type) | 计算起始日期d减去一个时间段后的日期 |
ADDTIME(t,n) | 计算起始时间t加上n秒的时间 |
SUBTIME(t,n) | 计算起始时间t减去n秒的时间 |
DATE_FORMAT(d,f) | 按照表达式f的要求显示日期d |
TIME_FORMAT(t,f) | 按照表达式f的要求显示时间t |
GET_FORMAT(type,s) | 根据字符串s获取type类型数据的显示格式 |
例子:
4 条件判断函数
- IF(exp,v1,v2)
例子:
- IFNULL(v1,v2)
- CASE
3.1、case when expr1 then v1 [when expr2 then v2]... else vn end(相当于if)
例子:
3.2、case expr1 when e1 then v1 [when e2 then v2]...else vn end(相当于switch)
例子:
5 系统信息函数
函数 | 作用 |
VERSION() | 返回数据库的版本号 |
CONNECTION_ID() | 返回服务器的连接数 |
DATABASE(),SCHEMA() | 返回当前数据库名 |
USER(),SYSTEM_USER(),SESSION_USER() | 返回当前用户 |
CURRENT_USER(),CURRENT_USER | |
CHARSET(str) | 返回字符串str的字符集 |
COLLATION(str) | 返回字符串str的字符排列方式 |
LAST_INSERT_ID() | 返回最近生产的auto_increment值 |
例子:
6 加密函数
- PASSWORD(str)
例子:
2.MD5(str)
例子:
3.ENCODE(str,pwd_str)
例子:
(如果要存储,则需存储的字段类型为blog)
4.DECODE(scty,pwd_str)
(对encode加密后的数据进行解密)
例子:
7 其他函数
- format(x,n)
对x进行格式化,保留n位小数
例子:
(不够补位--0,采取四舍五入方式)
2.IP地址和数字互相转化
inet_aton(ip)
inet_ntoa(n)
例子:
3.重复执行指定操作函数
benchmark(n,expr)
例子: