MySQL 函数

MySQL 拥有许多内置函数。

本参考包含了 MySQL 中的字符串函数、数值函数、日期函数和一些高级函数。

MySQL 字符串函数

函数 描述
ASCII 返回特定字符的 ASCII 值。
CHAR_LENGTH 返回字符串的长度(以字符为单位)。
CHARACTER_LENGTH 返回字符串的长度(以字符为单位)。
CONCAT 将两个或多个表达式连接在一起。
CONCAT_WS 使用分隔符将两个或多个表达式连接在一起。
FIELD 返回在值列表中的值的索引位置。
FIND_IN_SET 返回在字符串列表中的字符串位置。
FORMAT 将数字格式化为 "#,###,###.##" 等格式,四舍五入到指定的小数位数。
INSERT 在字符串中的指定位置插入一定数量的字符。
INSTR 返回字符串在另一个字符串中第一次出现的位置。
LCASE 将字符串转换为小写。
LEFT 从字符串的左边提取一定数量的字符。
LENGTH 返回字符串的长度(以字节为单位)。
LOCATE 返回子字符串在字符串中第一次出现的位置。
LOWER 将字符串转换为小写。
LPAD 使用另一个字符串将字符串左填充到一定的长度。
LTRIM 删除字符串中的前导空格。
MID 从字符串中提取子字符串(从任意位置开始)。
POSITION 返回子字符串在字符串中第一次出现的位置。
REPEAT 重复字符串指定的次数。
REPLACE 将字符串中所有出现的子字符串替换为新的子字符串。
REVERSE 反转字符串并返回结果。
RIGHT 从字符串的右边提取一定数量的字符。
RPAD 使用另一个字符串将字符串右填充到一定的长度。
RTRIM 删除字符串中的尾随空格。
SPACE 返回指定数量的空格字符的字符串。
STRCMP 比较两个字符串。
SUBSTR 从字符串中提取子字符串(从任意位置开始)。
SUBSTRING 从字符串中提取子字符串(从任意位置开始)。
SUBSTRING_INDEX 返回字符串中指定数量的分隔符出现之前的子字符串。
TRIM 删除字符串中的前导和尾随空格。
UCASE 将字符串转换为大写。
UPPER 将字符串转换为大写。

MySQL 数值函数

函数 描述
ABS 返回数字的绝对值。
ACOS 返回数字的反余弦值。
ASIN 返回数字的反正弦值。
ATAN 返回一个或两个数字的反正切值。
ATAN2 返回两个数字的反正切值。
AVG 返回表达式的平均值值。
CEIL 返回大于或等于一个数字的最小整数值。
CEILING 返回大于或等于一个数字的最小整数值。
COS 返回数字的余弦值。
COT 返回数字的余切值。
COUNT 返回 SELECT 查询返回的记录数。
DEGREES 将弧度值转换为度数。
DIV 用于整数除法。
EXP 返回 e 的指定数字次幂的值。
FLOOR 返回小于或等于一个数字的最大整数值。
GREATEST 返回参数列表的最大值。
LEAST 返回参数列表的最小值。
LN 返回数字的自然对数。
LOG 返回数字的自然对数,或返回指定底数的对数。
LOG10 返回数字以 10 为底的自然对数。
LOG2 返回数字以 2 为底的自然对数。
MAX 返回一组值中的最大值。
MIN 返回一组值中的最小值。
MOD 返回数字除以另一个数字的余数。
PI 返回 PI 值。
POW 返回数字的另一个数字次幂的值。
POWER 返回数字的另一个数字次幂的值。
RADIANS 将角度值转换为弧度。
RAND 返回随机数。
ROUND 将数字四舍五入到指定的小数位数。
SIGN 返回数字的符号。
SIN 返回数字的正弦值。
SQRT 返回数字的平方根。
SUM 计算一组值的总和。
TAN 返回数字的正切值。
TRUNCATE 将数字截断至指定的小数位数。

MySQL 日期函数

函数 描述
ADDDATE 向日期添加指定的时间间隔,然后返回日期。
ADDTIME 向时间添加指定的时间间隔,然后返回时间/日期时间。
CURDATE 返回当前日期。
CURRENT_DATE 返回当前日期。
CURRENT_TIME 返回当前时间。
CURRENT_TIMESTAMP 返回当前日期和时间。
CURTIME 返回当前时间。
DATE 从日期时间表达式中提取日期部分。
DATEDIFF 返回两个日期值之间的天数。
DATE_ADD 向日期添加指定的时间/日期间隔,然后返回日期。
DATE_FORMAT 设置日期格式。
DATE_SUB 从日期中减去时间/日期间隔,然后返回日期。
DAY 返回给定日期的月份中的第几天。
DAYNAME 返回给定日期的星期几的名称。
DAYOFMONTH 返回给定日期的月份中的第几天。
DAYOFWEEK 返回给定日期的星期几的索引。
DAYOFYEAR 返回给定日期是一年中的第几天。
EXTRACT 从给定日期中提取一部分。
FROM_DAYS 将数字日期值转换为日期。
HOUR 返回给定日期的小时部分。
LAST_DAY 提取给定日期该月的最后一天。
LOCALTIME 返回当前日期和时间。
LOCALTIMESTAMP 返回当前日期和时间。
MAKEDATE 创建并返回基于年份和天数值的日期。
MAKETIME 创建并返回基于小时、分钟和秒值的时间。
MICROSECOND 返回时间/日期时间的微秒部分。
MINUTE 返回时间/日期时间的分钟部分。
MONTH 返回给定日期的月份部分。
MONTHNAME 返回给定日期的月份名称。
NOW 返回当前日期和时间。
PERIOD_ADD 向周期添加指定的月数。
PERIOD_DIFF 返回两个周期之间的差值。
QUARTER 返回给定日期值的年份的季度。
SECOND 返回时间/日期时间的秒部分。
SEC_TO_TIME 返回基于指定秒数的时间值。
STR_TO_DATE 返回基于字符串和格式的日期。
SUBDATE 从日期中减去时间/日期间隔,然后返回日期。
SUBTIME 从日期时间中减去时间间隔,然后返回时间/日期时间。
SYSDATE 返回当前日期和时间。
TIME 从给定时间/日期时间中提取时间部分。
TIME_FORMAT 按指定格式格式化时间。
TIME_TO_SEC 将时间值转换为秒。
TIMEDIFF 返回两个时间/日期时间表达式之间的差值。
TIMESTAMP 根据日期或日期时间值返回日期时间值。
TO_DAYS 返回日期与日期 "0000-00-00" 之间的天数。
WEEK 返回给定日期的周数。
WEEKDAY 返回给定日期的星期几的数字。
WEEKOFYEAR 返回给定日期的周数。
YEAR 返回给定日期的年份部分。
YEARWEEK 返回给定日期的年份和周数。

MySQL 高级函数

函数 描述
BIN 返回数字的二进制表示。
BINARY 将值转换为二进制字符串。
CASE 遍历条件并在满足第一个条件时返回一个值。
CAST 将值(任何类型)转换为指定的数据类型。
COALESCE 返回列表中的第一个非空值。
CONNECTION_ID 返回当前连接的唯一连接 ID。
CONV 将数字从一种数字基本系统转换为另一种数字基本系统。
CONVERT 将值转换为指定的数据类型或字符集。
CURRENT_USER 返回服务器用于验证当前客户端的 MySQL 帐户的用户名和主机名。
DATABASE 返回当前数据库的名称。
IF 如果条件为真,则返回一个值;如果条件为假,则返回另一个值。
IFNULL 如果表达式为 NULL,则返回指定值,否则返回表达式。
ISNULL 根据表达式是否为 NULL 返回 1 或 0。
LAST_INSERT_ID 返回表中已插入或更新的最后一行的 AUTO_INCRMENT id。
NULLIF 比较两个表达式,如果相等则返回 NULL。否则,返回第一个表达式。
SESSION_USER 返回当前 MySQL 用户名和主机名。
SYSTEM_USER 返回当前 MySQL 用户名和主机名。
USER 返回当前 MySQL 用户名和主机名。
VERSION 返回 MySQL 数据库的当前版本。