1、LENGTH(str):获取长度
select LENGTH('abc123');
查询结果:6
select LENGTH('中公');
查询结果:6
2、CHAR_LENGTH(str):获取字符数
select CHAR_LENGTH('abc123');
查询结果:6
select CHAR_LENGTH('中公');
查询结果:2
3、SUBSTRING(str,pos,len):字符串截取
select SUBSTRING('13500260707',4,2);
注意:pos从1开始,且包含,len:截取长度。
查询结果:00
select SUBSTRING('13500260707',4);
注意:不传len,截取到最后。
查询结果:00260707
select SUBSTRING('13500260707',4,20);
注意:超过总长度,也是截取到最后。
查询结果:00260707
4、REPLACE(str,from_str,to_str):字符串替换
select REPLACE('zhonggong123ujiuye','123','');
查询结果:zhonggongujiuye
select REPLACE('abc123nmabc','abc','QQ');
查询结果:QQ123nmQQ
5、REVERSE(str):字符串反转
select REVERSE('i love you') ;
查询结果:uoy evol i
6、(s1,pos,len,s2):插入指定位置并替换
select ('13211223344',4,4,'****');
注意:pos从1开始,且包含,len:截取长度。
查询结果:132****3344
7、RAND() :返回 0 到 1 的随机数
select RAND();
查询结果:
0.7349283659283746
8、RAND(x) :返回 0 到 1 的随机数,其中x的取值为1-65535,如每次x的取值相同,则返回的随机数也相同
select RAND(7);
查询结果:
0.7439285923573926
select RAND(7);
查询结果:
0.7439285923573926
使用rand()生成一个m-n之间的随机数
Select floor(rand()*(n-m+1)+m)
9、TRIM([remstr FROM] str) :去除两端指定字符串或空格。
去除两端空格:
select TRIM(' ujiuye ujiuye ');
查询结果:ujiuye ujiuye
去除两端指定字符串:
select TRIM('ujiuye' from 'ujiuyeujiuye123123ujiuye');
查询结果:123123
10、LTRIM(str)/RTRIM(str):去除左边/右边空格
去除左边空格:
select LTRIM(' A A ');
查询结果:A A (后面还有空格)
去除右边空格:
select RTRIM(' A A ');
结果: A A
11、MOD(x,y):返回 x 除以 y 以后的余数
SELECT MOD(10,3);
查询结果:
1
另外一种写法:
SELECT 10%3;
查询结果
1
12、IF(expr,v1,v2):如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2
SELECT IF(11 < 2,'正确','错误');
查询结果:错误
SELECT IF(11 > 2,'正确','错误');
查询结果:正确
13、IFNULL(v1,v2):如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
SELECT IFNULL(null,'空');
查询结果:空
SELECT IFNULL("我和我亲爱的祖国",'空');
查询结果:我和我亲爱的祖国
14、ISNULL(expression):判断表达式是否为 NULL
SELECT ISNULL(1);
查询结果:0
SELECT ISNULL(null);
查询结果:1
15、时间函数
#获取当前时间
select CURRENT_TIMESTAMP();
查询结果:2020-07-14 16:54:54
#格式化日期 年月日
select DATE_FORMAT('2020/10/01','%Y-%m-%d %H:%i:%s');
查询结果:2020-10-01 00:00:00
#取出 年月日
select YEAR(CURRENT_TIMESTAMP());
查询结果:2020
select MONTH(CURRENT_TIMESTAMP());
查询结果:10
select DAY(CURRENT_TIMESTAMP());
查询结果:01
#日期加一天,一月,一年
当前时间:2020-10-01 15:20:17
SELECT ADDDATE(CURRENT_TIMESTAMP(),INTERVAL 1 DAY);
查询结果:2020-10-01 15:20:17
SELECT ADDDATE(CURRENT_TIMESTAMP(),INTERVAL 1 MONTH);
查询结果:2020-11-01 15:20:17
SELECT ADDDATE(CURRENT_TIMESTAMP(),INTERVAL 1 YEAR);
查询结果:2021-10-01 15:20:17
#日期减一天,一月,一年
SELECT ADDDATE(CURRENT_TIMESTAMP(),INTERVAL -1 DAY);
查询结果:2020-10-01 15:20:17
SELECT ADDDATE(CURRENT_TIMESTAMP(),INTERVAL -1 MONTH);
查询结果:2020-09-01 15:20:17
SELECT ADDDATE(CURRENT_TIMESTAMP(),INTERVAL -1 YEAR);
查询结果:2019-10-01 15:20:17
#日期比较
SELECT CURRENT_TIMESTAMP() > ADDDATE(CURRENT_TIMESTAMP(),INTERVAL 1 day);
查询结果:0
SELECT CURRENT_TIMESTAMP() > ADDDATE(CURRENT_TIMESTAMP(),INTERVAL -1 day);
查询结果:1