mysql常用的数学函数
1. 数学函数
函 数 | 作 用 |
---|---|
ABS(x) | 返回x的绝对值 |
CEIL(x),CEILIN(x) | 返回不小于x的最小整数值 |
FLOOR(x) | 返回不大于x的最大整数值 |
RAND() | 返回0~1的随机数 |
RAND(x) | 返回0~1的随机数,x值相同返回时返回的随机数相同 |
SIGN(x) | 返回参数作为-1、0、1的符号,该符号取决于x的值为负、零或者正 |
PI() | 返回圆周率PI,默认显示小数位数是7位,mysql内部会使用完全双精度值 |
TRUNCATE(x,y) | 返回数值x保留到小数点后y位值 |
ROUND(x) | 返回离x最近的整数 |
ROUND(x,y) | 保留x小数点后y位的值,但截断时要进行四舍五入 |
POW(x,y),POWER(x,y) | 返回x的y乘方的结果 |
SQRT(x) | 返回非负数x的二次方根 |
EXP(x) | 返回e(自然对数的底)的x乘方后的值 |
MOD(x,y) | 返回x除以y以后的余数 |
LOG(x) | 返回x的基数为2的对数 |
LOG10(x) | 返回x的基数为10的对数 |
RADIANS(x) | 将角度转换为弧度 |
DEGREES(x) | 将弧度转换为角度 |
SIN(x) | 返回x的正弦,其中x在弧度中被给定 |
ASIN(x) | 返回x的反正弦,即正弦为x的值。x不在-1~1的话就返回null |
COS(x) | 返回x的余弦,其中x在弧度中被给定 |
ACOS(x) | 返回x的反余弦,即余弦为x的值。x不在-1~1的话就返回null |
TAN(x) | 返回反正切值,即正切为x的值 |
ATAN(x),ATAN(x,y) | 返回两个变量x及y的反正切。 |
COT(x) | 返回x的余切 |
2. 字符串函数
函 数 | 作 用 |
---|---|
CHAR_LENGTH(s) | 返回字符串s的字符数(用于查询字符串长度) |
LENGTH(s) | 返回字符串的字节数 |
CONCAT(s1,s2..) | 将几个字符串拼接起来,若一个为null则返回null |
CONCAT_WS(x,s1,s2..) | 同concat(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) | 返回字符串左边的n个字符串 |
RIGHT(s,n) | 返回字符串右边的n个字符串 |
LTRIM(s) | 返回去除了左边空格的s |
RTRIM(s) | 返回去除了右边空格的s |
TRIM(s) | 返回去除两边的空格的s |
TRIM(s1 FROM s) | 返回去除了两边s1的s |
REPEAT(s,n) | 将字符串s重复n次 |
SPACE(n) | 返回n个空格 |
replace(s,s1,s2) | 用s2代替s中的s1 |
STRCMP(s1,s2) | 比较字符串s1和s2长度,s1长于s2则返回1,s2长于s1则返回-1,相等则返回0 |
SUBSTRING(s,n,len) | 获取从字符串s的第n个位置开始长度为len的字符串 |
MID(s,n,len) | 同SUBSTRING(s,n,len) |
LOCATE(s1,s),POSITION(s1 IN s) | 找到s中s1的位置 |
INSTER(s,s1) | 查找字符串s1在s中的位置,返回首次出现位置的索引值 |
REVERSE(s) | 将字符串s的顺序反过来 |
ELT(n,s1,s2) | 返回第n个字符串 |
FIELD(s,s1,s2..) | 返回第一个与字符串s匹配的字符串的位置 |
FIND_IN_SET(s1,s2) | 返回在字符串s2中与s1匹配的字符串的位置 |
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日期 |
UTC_TIME() | 返回UTC时间 |
MONTH(d) | 返回日期d中的月份值,范围0~12 |
MONTHNAME(d) | 返回日期d中的月份名称 |
DAYNAME(d) | 返回日期d是星期几 |
DAYOFWEEK(d) | 返回日期d是星期几,1是星期天,2是星期一 |
WEEKDAY(d) | 返回日期d是星期几,0是星期一,1是星期二 |
WEEK(d) | 计算日期d是本年的第几个星期,范围0~53 |
WEEKOFYEAR(d) | 计算日期d是本年的第几个星期,范围1~53 |
DAYOFYEAR(d) | 计算日期d是本年的第几天 |
DAYOFMONTH(d) | 计算日期d是本月的第几天 |
YEAR(d) | 返回年份值 |
QUARTER(d) | 返回日期d是第几个季度,范围1~4 |
HOUR(t) | 返回时间t中的小时值 |
MINUTE(t) | 返回时间t中的分钟值 |
SECOND(t) | 返回时间t中的秒钟值 |
EXTRACT(type of d) | 从日期d中获取指定的值,type可以是YEAR,HOUR等 |
TIME_TO_SEC(t) | 将时间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天的日期 |
SUBDATE(d,n) | 计算起始日期d减去n天的日期 |
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类型数据的显示格式 |