MySQL 字符串函数
CONCAT
字符串 s1,s2 等多个字符串合并为一个字符串
select CONCAT('中国',t.userfrom,city) from newsp_201_user t;
FORMAT
函数可以将数字字段进行格式化 "#,###.##", 将数字字段保留到小数点后 n 位,最后一位四舍五入。
SELECT FORMAT(250500.5634, 2); -- 输出 250,500.56
LCASE、UCASE
将字符串的所有字母变成小写字母,UCASE是转成大写
SELECT LCASE('RUNOOB') -- runoob
LEFT
返回字段的前 n 个字符
SELECT LEFT('runoob',2) -- ru
MID
从字符串 s 的 start 位置截取长度为 length 的子字符串,同 substring功能一样
SELECT MID("RUNOOB", 2, 3) AS ExtractString; -- UNO
REPLACE
字符串 abc 中的字符 a 替换为字符 x
SELECT REPLACE('abc','a','x') --xbc
TRIM
去掉前后空格
SELECT TRIM(' RUNOOB ') AS TrimmedString;
MySQL 数字函数
ABS
返回绝对值
SELECT ABS(-1) -- 返回 1
AVG / COUNT / MIN / MAX / SUM
略
TRUNCATE
返回数值保留到小数点后 3 位的值(与 ROUND 最大的区别是不会进行四舍五入)
SELECT TRUNCATE(1.23456,3) -- 1.234
MySQL 时间函数
ADDDATE / DATE_ADD
计算起始日期 d 加上 n 天的日期
SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY); -- 2017-06-25 SELECT ADDDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE)
ADDTIME
时间 t 加上 n 秒的时间
SELECT ADDTIME('2011-11-11 11:11:11', 5) -- 2011-11-11 11:11:16 (秒)
CURDATE和CURRENT_DATE
返回当前日期
SELECT CURDATE(); -- 2018-09-19
CURTIME和CURRENT_TIME
返回当前时间
SELECT CURRENT_TIME();
DATEDIFF
时间相差天数
SELECT DATEDIFF('2001-01-01','2001-02-02') -- -32
DATE_FORMAT
时间格式化
SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r')
DATE_SUB / SUBDATE
函数从日期减去指定的时间间隔
SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 2 DAY) AS OrderPayDate FROM Orders
NOW / SYSDATE
当前时间
select now();
TO_DAYS
计算日期 d 距离 0000 年 1 月 1 日的天数
SELECT TO_DAYS('1901-01-01 01:01:01')
MySQL高级函数
IFNULL
select user_name,IFNULL(email,"abc@163.com") from newsp_201_user;
ISNULL
select user_name,ISNULL(email) from newsp_201_user
注意:在查询字段的时候,MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符
IF
如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
SELECT IF(sex = 0,'男','女')
其他函数请参照:https://www.runoob.com/mysql/mysql-functions.html