MySQL通用函数汇总大全

一、数学函数


| 函数 | 说明 |

| :-- | :-- |

| ABS(x) | 返回x的绝对值 |

| PI() | 返回圆周率π,默认显示6位小数 |

| SQRT(x) | 返回非负数的x的二次方根 |

| MOD(x,y) | 返回x被y除后的余数 |

| CEIL(x)、CEILING(x) | 返回不小于x的最小整数 |

| FLOOR(x) | 返回不大于x的最大整数 |

| ROUND(x)、ROUND(x,y) | 前者返回最接近于x的整数,即对x进行四舍五入;后者返回最接近x的数,其值保留到小数点后面y位,若y为负值,则将保留到x到小数点左边y位 |

| SIGN(x) | 返回参数x的符号,-1表示负数,0表示0,1表示正数 |

| POW(x,y)和、POWER(x,y) | 返回参数x的符号,-1表示负数,0表示0,1表示正数 |

| EXP(x) | 返回e的x乘方后的值 |

| LOG(x) | 返回x的基数为10的对数 |

| LOG10(x) | 返回x的基数为10的对数 |

| RADIANS(x) | 返回x由角度转化为弧度的值 |

| DEGREES(x) | 返回x由弧度转化为角度的值 |

| SIN(x)、ASIN(x) | 前者返回x的正弦,其中x为给定的弧度值;后者返回x的反正弦值,x为正弦 |

| COS(x)、ACOS(x) | 前者返回x的余弦,其中x为给定的弧度值;后者返回x的反余弦值,x为余弦 |

| TAN(x)、ATAN(x) | 前者返回x的正切,其中x为给定的弧度值;后者返回x的反正切值,x为正切 |

| COT(x) | 返回给定弧度值x的余切 |

二、字符串函数


| 函数 | 说明 |

| :-- | :-- |

| CHAR_LENGTH(str) | 计算字符串字符个数 |

| CONCAT(s1,s2,…) | 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL |

| CONCAT_WS(x,s1,s2,…) | 返回多个字符串拼接之后的字符串,每个字符串之间有一个x |

| INSERT(s1,x,len,s2) | 返回字符串s1,其子字符串起始于位置x,被字符串s2取代len个字符 |

| LOWER(str)和LCASE(str)、UPPER(str)和UCASE(str) | 前两者将str中的字母全部转换成小写,后两者将字符串中的字母全部转换成大写 |

| LEFT(s,n)、RIGHT(s,n) | 前者返回字符串s从最左边开始的n个字符,后者返回字符串s从最右边开始的n个字符 |

| LPAD(s1,len,s2)、RPAD(s1,len,s2) | 前者返回s1,其左边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符;前者返回s1,其右边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符 |

| LTRIM(s)、RTRIM(s) | 前者返回字符串s,其左边所有空格被删除;后者返回字符串s,其右边所有空格被删除 |

| TRIM(s) | 返回字符串s删除了两边空格之后的字符串 |

| TRIM(s1 FROM s) | 删除字符串s两端所有子字符串s1,未指定s1的情况下则默认删除空格 |

| REPEAT(s,n) | 返回一个由重复字符串s组成的字符串,字符串s的数目等于n |

| SPACE(n) | 返回一个由n个空格组成的字符串 |

| REPLACE(s,s1,s2) | 返回一个字符串,用字符串s2替代字符串s中所有的字符串s1 |

| STRCMP(s1,s2) | 若s1和s2中所有的字符串都相同,则返回0;根据当前分类次序,第一个参数小于第二个则返回-1,其他情况返回1 |

| SUBSTRING(s,n,len)、MID(s,n,len) | 两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串 |

| LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1) | 三个函数作用相同,返回子字符串str1在字符串str中的开始位置(从第几个字符开始) |

| REVERSE(s) | 将字符串s反转 |

| ELT(N,str1,str2,str3,str4,…) | 返回第N个字符串 |

三、日期和时间函数


| 函数 | 说明 |

| :-- | :-- |

| CURDATE()、CURRENT_DATE() | 将当前日期按照"YYYY-MM-DD"或者"YYYYMMDD"格式的值返回,具体格式根据函数用在字符串或是数字语境中而定 |

| CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE() | 这四个函数作用相同,返回当前日期和时间值,格式为"YYYY_MM-DD HH:MM:SS"或"YYYYMMDDHHMMSS",具体格式根据函数用在字符串或数字语境中而定 |

| UNIX_TIMESTAMP()、UNIX_TIMESTAMP(date) | 前者返回一个格林尼治标准时间1970-01-01 00:00:00到现在的秒数,后者返回一个格林尼治标准时间1970-01-01 00:00:00到指定时间的秒数 |

| FROM_UNIXTIME(date) | 和UNIX_TIMESTAMP互为反函数,把UNIX时间戳转换为普通格式的时间 |

| UTC_DATE()和UTC_TIME() | 前者返回当前UTC(世界标准时间)日期值,其格式为"YYYY-MM-DD"或"YYYYMMDD",后者返回当前UTC时间值,其格式为"YYYY-MM-DD"或"YYYYMMDD"。具体使用哪种取决于函数用在字符串还是数字语境中 |

| MONTH(date)和MONTHNAME(date) | 前者返回指定日期中的月份,后者返回指定日期中的月份的名称 |

| DAYNAME(d)、DAYOFWEEK(d)、WEEKDAY(d) | DAYNAME(d)返回d对应的工作日的英文名称,如Sunday、Monday等;DAYOFWEEK(d)返回的对应一周中的索引,1表示周日、2表示周一;WEEKDAY(d)表示d对应的工作日索引,0表示周一,1表示周二 |

| WEEK(d)、WEEKOFYEAD(d) | 前者计算日期d是一年中的第几周,后者计算某一天位于一年中的第几周 |

| DAYOFYEAR(d)、DAYOFMONTH(d) | 前者返回d是一年中的第几天,后者返回d是一月中的第几天 |

| YEAR(date)、QUARTER(date)、MINUTE(time)、SECOND(time) | YEAR(date)返回指定日期对应的年份,范围是19702069;QUARTER(date)返回date对应一年中的季度,范围是14;MINUTE(time)返回time对应的分钟数,范围是0~59;SECOND(time)返回制定时间的秒值 |

| EXTRACE(type FROM date) | 从日期中提取一部分,type可以是YEAR、YEAR_MONTH、DAY_HOUR、DAY_MICROSECOND、DAY_MINUTE、DAY_SECOND |

| TIME_TO_SEC(time) | 返回以转换为秒的time参数,转换公式为"3600_小时 + 60_分钟 + 秒" |

| SEC_TO_TIME() | 和TIME_TO_SEC(time)互为反函数,将秒值转换为时间格式 |

| DATE_ADD(date,INTERVAL expr type)、ADD_DATE(date,INTERVAL expr type) | 返回将起始时间加上expr type之后的时间,比如DATE_ADD(‘2010-12-31 23:59:59’, INTERVAL 1 SECOND)表示的就是把第一个时间加1秒 |

| DATE_SUB(date,INTERVAL expr type)、SUBDATE(date,INTERVAL expr type) | 返回将起始时间减去expr type之后的时间 |

| ADDTIME(date,expr)、SUBTIME(date,expr) | 前者进行date的时间加操作,后者进行date的时间减操作 |

四、条件判断函数


| 函数 | 说明 |

| :-- | :-- |

| IF(expr,v1,v2) | 如果expr是TRUE则返回v1,否则返回v2 |

| IFNULL(v1,v2) | 如果v1不为NULL,则返回v1,否则返回v2 |

| CASE expr WHEN v1 THEN r1 [WHEN v2 THEN v2] [ELSE rn] END | 如果expr等于某个vn,则返回对应位置THEN后面的结果,如果与所有值都不想等,则返回ELSE后面的rn |

五、系统信息函数


| 函数 | 说明 |

| :-- | :-- |

| VERSION() | 查看MySQL版本号 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值