MySQL 常用函数分类
字符串相关函数
基本字符串操作
-
CONCAT(str1, str2, ...)- 连接字符串 -
CONCAT_WS(separator, str1, str2, ...)- 用分隔符连接字符串 -
SUBSTRING(str, pos, len)/SUBSTR(str, pos, len)- 截取子串 -
LEFT(str, len)- 返回字符串左侧的len个字符 -
RIGHT(str, len)- 返回字符串右侧的len个字符 -
LENGTH(str)- 返回字符串字节长度 -
CHAR_LENGTH(str)- 返回字符串字符长度 -
TRIM([{BOTH|LEADING|TRAILING} [remstr] FROM] str)- 去除空格或指定字符 -
LTRIM(str)- 去除左侧空格 -
RTRIM(str)- 去除右侧空格
字符串修改
-
UPPER(str)/UCASE(str)- 转换为大写 -
LOWER(str)/LCASE(str)- 转换为小写 -
REPLACE(str, from_str, to_str)- 替换字符串 -
INSERT(str, pos, len, newstr)- 在指定位置插入字符串 -
REPEAT(str, count)- 重复字符串 -
REVERSE(str)- 反转字符串
字符串比较与搜索
-
STRCMP(str1, str2)- 比较字符串 -
LOCATE(substr, str)/POSITION(substr IN str)- 查找子串位置 -
INSTR(str, substr)- 返回子串第一次出现的位置 -
FIELD(str, str1, str2, ...)- 返回字符串在列表中的位置
格式化与编码
-
FORMAT(X, D)- 格式化数字为字符串 -
HEX(str)- 转换为十六进制 -
UNHEX(str)- 十六进制转字符串 -
QUOTE(str)- 用引号括起字符串
数字相关函数
基本数学运算
-
ABS(X)- 绝对值 -
CEIL(X)/CEILING(X)- 向上取整 -
FLOOR(X)- 向下取整 -
ROUND(X, D)- 四舍五入 -
TRUNCATE(X, D)- 截断数字
指数与对数
-
POW(X, Y)/POWER(X, Y)- X的Y次方 -
SQRT(X)- 平方根 -
EXP(X)- e的X次方 -
LOG(X)- 自然对数 -
LOG10(X)- 以10为底的对数
三角函数
-
SIN(X)- 正弦 -
COS(X)- 余弦 -
TAN(X)- 正切 -
ASIN(X)- 反正弦 -
ACOS(X)- 反余弦 -
ATAN(X)- 反正切
比较与符号
-
SIGN(X)- 返回符号(-1, 0, 1) -
MOD(N, M)/N % M/N MOD M- 取模
随机数
-
RAND()- 随机数(0-1) -
RAND(N)- 带种子的随机数
时间相关函数
获取当前时间
-
NOW()- 当前日期和时间 -
CURDATE()/CURRENT_DATE()- 当前日期 -
CURTIME()/CURRENT_TIME()- 当前时间 -
CURRENT_TIMESTAMP()- 当前时间戳 -
SYSDATE()- 系统日期时间 -
UTC_DATE()- UTC日期 -
UTC_TIME()- UTC时间 -
UTC_TIMESTAMP()- UTC时间戳
时间提取
-
YEAR(date)- 提取年份 -
MONTH(date)- 提取月份 -
DAY(date)/DAYOFMONTH(date)- 提取日 -
HOUR(time)- 提取小时 -
MINUTE(time)- 提取分钟 -
SECOND(time)- 提取秒 -
DAYOFWEEK(date)- 星期几(1=周日) -
DAYOFYEAR(date)- 一年中的第几天 -
WEEK(date[, mode])- 一年中的第几周 -
QUARTER(date)- 季度
时间计算
-
DATE_ADD(date, INTERVAL expr unit)- 日期加法 -
DATE_SUB(date, INTERVAL expr unit)- 日期减法 -
ADDDATE(date, INTERVAL expr unit)- 日期加法 -
SUBDATE(date, INTERVAL expr unit)- 日期减法 -
DATEDIFF(expr1, expr2)- 日期差(天数) -
TIMEDIFF(expr1, expr2)- 时间差 -
TIMESTAMPDIFF(unit, datetime1, datetime2)- 时间戳差
时间格式化
-
DATE_FORMAT(date, format)- 格式化日期 -
TIME_FORMAT(time, format)- 格式化时间 -
STR_TO_DATE(str, format)- 字符串转日期 -
UNIX_TIMESTAMP([date])- 转为Unix时间戳 -
FROM_UNIXTIME(unix_timestamp[, format])- Unix时间戳转日期
其他时间函数
-
LAST_DAY(date)- 月份最后一天 -
MAKEDATE(year, dayofyear)- 创建日期 -
MAKETIME(hour, minute, second)- 创建时间 -
PERIOD_ADD(P, N)- 增加月份到期间 -
PERIOD_DIFF(P1, P2)- 期间差
以上是MySQL中常用的字符串、数字和时间相关函数,实际使用时请参考具体版本的MySQL文档,因为不同版本可能会有差异。
