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文档,因为不同版本可能会有差异。