算数函数
函数 | 作用 | 示例 |
---|
CEILING(x) | 向上取整(同CEIL) ,返回值会被转化为一个 BIGINT | select CEILING(3.14) -> 4 |
CEIL(x) | 向上取整(同CEILING) ,返回值会被转化为一个 BIGINT | select CEIL(3.14) -> 4 |
FLOOR(x) | 向下取整 ,返回值会被转化为一个 BIGINT | SELECT FLOOR(1.9) -> 1 |
ROUND(x) | 返回与x最接近的整数 | select ROUND(1.5) -> 2 |
ROUND(x, d) | 返回与x最接近的数字,并四舍五入保留d为小数.若d为负数,则处理个位数数字 | select ROUND(1.55253, 3) -> 1.553. select ROUND(123.456, -1) -> 120 |
ABS(x) | 获取x的绝对值 | select ABS(-100) -> 100 |
FORMAT(x, d) | 对数字x格式化并保留d位小数,格式化后的格式为: #,###,###.## | SELECT FORMAT(1234567893.141592653, 5) -> 1,234,567,893.14159 |
MOD(x, y) | 模操作.返回x 被 y除后的余数 == x% y | select MOD(3, 2) -> 1 |
POW(x, y) | 返回x 的y乘方的结果值 | select POW(2,4) -> 16 |
RAND() | 返回一个随机浮点值 v ,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0) | select RAND() -> 0.846639633035883 |
RAND(x) | x被用作种子值,用来产生重复序列 | select RAND(10) -> 0.6570515219653505 |
字符串函数
函数 | 作用 | 示例 |
---|
ASCII(x) | 返回x首位字符的ascii码值 | select ASCII(‘ABC’) -> 65 |
BIN(x) | x转换为2进制 | select BIN(18) -> 10010 |
BIT_LENGTH(x) | 返回字符串x的二进制长度 | select BIT_LENGTH(‘ABC’) -> 24 |
CHAR(x,y,z…) | 参数为数字,将数字转化为对应的字符再拼接字符串 | SELECT CHAR(77,121,83,81,76) -> MySQL |
LENGTH(x) | 返回字符串中字节的数量(中文两字节则数量翻倍) | SELECT LENGTH(‘ABCd’) -> 4 |
CHAR_LENGTH(x) | 返回字符串中字符的数量 | SELECT LENGTH(‘我们’) -> 6 select CHAR_LENGTH( ‘我们’)-> 2 |
CONCAT(x, y,z…) | 字符串拼接,返回结果为连接参数产生的字符串,如有任何一个参数为NULL,则返回值为 NULL | SELECT CONCAT(‘A’, ‘B’, ‘C’, ‘D’) -> ABCD |
CONCAT_WS(x, x1,x2,x3…) | 返回以x分割拼接后的字符串 | SELECT CONCAT_WS(’@@’,‘A’, ‘B’, ‘C’, ‘D’) -> A@@B@@C@@D |
INSERT(x,y,z,d) | 将字符串x从起始位置y到结束位置z全部替换为字符串d,若任何一个参数为null,则返回值为NULL | select INSERT(‘ABCDEFG’,2,3,‘X’) -> AXEFG |
LEFT(x, d) | 返回字符串从左向右前d位字符组成的字符串(包含第d位) | SELECT LEFT(‘ABCDEFG’, 3)-> ABC |
RIGHT(x,d) | 返回字符串从右向左后d位字符组成的字符串(包含第d位) | SELECT RIGHT(‘ABCDEFG’, 4) -> DEFG |
LOCATE(x, y) | 返回字符串x在字符串y中存在的起始位置,如果不存在返回0 | SELECT LOCATE(‘EF’, ‘ABCDEFG’) -> 5 |
LOWER(x) | 字符串转小写 | SELECT lower(‘ABCDEFG’) -> abcdefg |
UPPER(x) | 字符串转大写 | SELECT upper(‘abcdefg’) -> ABCDEFG |
REPEAT(x, d) | 将x字符串重复拼接d次 | SELECT REPEAT(‘ABC’, 2) -> ABCABC |
REPLACE(x,y,z) | 字符串替换,将x中的y替换为z | SELECT REPLACE(‘www.baidu.com’, ‘w’, ‘a’) -> aaa.baidu.com |
REVERSE(x) | 将字符串x倒置 | SELECT REVERSE(‘www.baidu.com’) -> moc.udiab.www |
SUBSTRING(x, d) | 返回字符串x从d为截取向后的字符串(包含第d位) | SELECT SUBSTRING(‘ABCDEFG’, 3) -> CDEFG |
TRIM(x) | 去除x的前后空格 | SELECT TRIM(’ ABCDEFG ') -> ABCDEFG |
时间与日期函数
函数 | 作用 | 示例 |
---|
NOW() | 获取当前日期时间 | SELECT NOW() -> 2020-07-12 18:30:46 |
CURDATE() | 获取当前日期(返回数字则为YYYYMMDD , 字符串则为YYYY-MM-DD) | SELECT CURDATE() -> 2020-07-12 |
CURTIME() | 获取当前时间(返回数字则为HHMMSS , 字符串则为HH:MM:SS) | SELECT CURTIME() -> 18:36:06 |
DATE(x) | 获取x中的日期 | SELECT DATE(now()) -> 2020-07-12 |
TIME(x) | 获取x中的时间 | SELECT TIME(now()) -> 18:38:02 |
ADDDATE(x, y) | 在x基础上加上y天后的日期时间 | SELECT ADDDATE(now(), 31) -> 2020-08-12 18:31:46 |
ADDTIME(x, y) | 在x基础上加上y时间后的日期时间 | SELECT ADDTIME(now(), ‘01:01:01’); -> 2020-07-12 19:33:57 |
DATEDIFF(x, y) | 返回x与y相差的天数x-y | SELECT DATEDIFF(now(), ‘2020-7-01’) -> 11 |
DATE_FORMAT(x, d) | 日期按照d的格式进行格式化 (具体可以查看官方文档) | SELECT DATE_FORMAT(now(), ‘%Y-%m-%d’) -> 2020-07-12 |
DAY(x) | 获取x是本月的第几天 | SELECT DAY(now()) -> 12 |
DAYOFMONTH(x) | 同DAY(x) | SELECT DAYOFMONTH(now()) -> 12 |
DAYOFWEEK(x) | 获取x是本周的第几天 | SELECT DAYOFWEEK(now()) -> 1 |
DAYOFYEAR(x) | 获取x是本年的第几天 | SELECT DAYOFYEAR(now()) -> 194 |
LAST_DAY(x) | 获取x月的最后一天 | SELECT LAST_DAY(now()) -> 2020-07-31 |
文章中只列举了常用函数,其他MySQL函数可以到官方文档查看: MySQL官方文档