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返回一个数字的指定次方
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如果条件为 TRUE,则返回一个值;如果条件为 FALSE,则返回另一个值
IFNULL如果表达式为 NULL,则返回指定值,否则返回表达式
ISNULL根据表达式是否为 NULL 返回 1 或 0
LAST_INSERT_ID返回表中插入或更新的最后一行的自增id
NULLIF比较两个表达式,如果它们相等,则返回 NULL。否则,将返回第一个表达式
SESSION_USER返回当前 MySQL 用户名和主机名
SYSTEM_USER返回当前 MySQL 用户名和主机名
USER返回当前 MySQL 用户名和主机名
VERSION返回 MySQL 数据库的当前版本