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类型数据的显示格式

相关推荐