1、CONCAT(str1,str2,...)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL,则返回值为 NULL。
2、CONCAT_WS(separator,str1,str2,...)
第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
3、GROUP_CONCAT(expr)分组拼接函数
GROUP_CONCAT([DISTINCT] 要连接的字段 [ORDER BY ASC/DESC 排序字段] [SEPARATOR '分隔符'])。
和GROUP BY配合使用。
4、ISNULL(expr)
exper是NULL,则返回真,否则返回假。
5、IFNULL(expr1,expr2)
假如expr1不为NULL,则IFNULL() 的返回值为 expr1; 否则其返回值为expr2。
6、FORMAT(X,D)
将X格式化成D位小数的数,可以格式化数据为整数或者浮点数,具有四舍五入的功能。
7、SUBSTRING_INDEX(str,delim,count)
SUBSTRING_INDEX(被截取字段,关键字,关键字出现的次数)
如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容;相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容。
8、常用的文本处理函数
函数 | 说明 | 示例 | 示例结果 |
LEFT(str,len) | 返回串左边的len个字符 | SELECT LEFT('abcdef',2); | ab |
LENGTH(str) | 返回串的长度 | SELECT LENGTH('abcdef'); | 6 |
LOCATE(substr,str) | 找出串的一个子串,存在则返回第一个出现的位置(位置从1开始计算),不存在返回0 | SELECT LOCATE('abc','abcabc'); | 1 |
LOWER(str) | 将串转换为小写 | SELECT LOWER('ABC'); | abc |
LTRIM(str) | 去掉串左边的空格 | SELECT LTRIM(' QAQ'); | QAQ |
RIGHT(str,len) | 返回串右边的len个字符 | SELECT RIGHT('abcdef', 2); | ef |
RTRIM(str) | 去掉串右边的空格 | SELECT RTRIM('QAQ '); | QAQ |
SOUNDEX(str) | 返回穿的SOUNDEX值 | SELECT SOUNDEX('abcdef'); | A1231 |
SUBSTRING(str,pos) | 返回从位置pos开始到末尾的子串 (位置从1开始计算) | SELECT SUBSTRING('abcdef',2); | bcdef |
UPPER(str) | 将串转换为大写 | SELECT UPPER('abc'); | ABC |
TRIM(str) | 去掉串左右两边的空格 | SELECT TRIM(' QAQ '); | QAQ |
9、常用的日期和时间处理函数
函数 | 说明 | 示例 | 示例结果 |
ADDDATE(date,INTERVAL expr unit) | 增加一个日期(天、周等) |
SELECT ADDDATE('2018-12-09 07:00:00',INTERVAL 1 HOUR); |
2018-12-09 08:00:00 |
ADDTIME(expr1,expr2) | 增加一个时期(时、分等) | SELECT ADDTIME('2018-12-09 07:00:00', '07:00:00:00'); | 2018-12-09 14:00:00 |
CURDATE() | 返回当前日期 | SELECT CURDATE(); | 2018-12-09 |
CURTIME() | 返回当前时间 | SELECT CURTIME(); | 17:36:21 |
DATE(expr) | 返回日期时间的日期部分 | SELECT DATE('2018-12-09 07:00:00'); | 2018-12-09 |
DATEDIFF(expr1,expr2) | 计算两个日期之差 | SELECT DATEDIFF('2018-12-09 07:00:00','2018-12-10 10:30:00'); | -1 |
DATE_ADD(date,INTERVAL expr unit) | 高度灵活的日期运算函数 | SELECT DATE_ADD('2018-12-09 07:00:00',INTERVAL 5 DAY) | 2018-12-14 07:00:00 |
DATE_FORMAT(date,format) | 返回一个格式化的日期或时间串 | SELECT DATE_FORMAT('2018-12-09 07:00:00','%Y-%m-%d %H:%i:%S'); | 2018-12-09 07:00:00 |
DAY(expr) | 返回一个日期的天数部分 | SELECT DAY('2018-12-09 07:00:00'); | 9 |
DAYOFWEEK(date) | 对于一个日期,返回对应的礼拜几 | SELECT DAYOFWEEK('2018-12-09 07:00:00'); | 1 |
HOUR(expr) | 返回一个时间的小时部分 | SELECT HOUR('2018-12-09 07:00:00'); | 7 |
MINUTE(expr) | 返回一个时间的分钟部分 | SELECT MINUTE('2018-12-09 07:30:25'); | 30 |
MONTH(expr) | 返回一个时间的月份部分 | SELECT MONTH('2018-12-09 07:30:25'); | 12 |
NOW() | 返回当前日期和时间 | SELECT NOW(); | 2018-12-09 18:44:02 |
SECOND(expr) | 返回一个时间的秒部分 | SELECT SECOND('2018-12-09 07:30:25'); | 25 |
TIME(expr) | 返回一个日期的时间部分 | SELECT TIME('2018-12-09 07:30:25'); | 07:30:25 |
YEAR(date) | 返回一个日日的年份部分 | SELECT YEAR('2018-12-09 07:30:25'); | 2018 |