Mysql学习之路

一:mysql常用函数整理

1,selectCONCAT(null,' chen',' zhi');

2,selectCONCAT_WS('-','2018','9','10');

3,selectSTRCMP('edad','eadaddadad'); //比较字符串大小,是按字母排序顺序来排序的,>返回1,等于返回0,小于返回-1,注意:

如果第一个字母相同,就按第二个字母排序顺序来,以此类推即可

4, SELECT* from systemtype WHERECHAR_LENGTH(SystemTypeName) > 15; //CHAR_LENGTH统计str的字符个数,中文英文都算一个字符,注意不是统计长度

5, selectFIND_IN_SET('mysql','oracle,mysql,sqlserver,java,php'); //返回第一个字符串在第二个字符串中出现的位置,忽略大小写,第二个字符串中每个字符串之间的大小用,分割,返回的索引位置是从1开始,返回0代表未找到,该sql语句返回2,表示mysql在第二个位置出现

6, SELECT*FROM systemtype where FIND_IN_SET(SystemTypeID,'1,2,4') >0;//另一种用法,相当于in,>0是in,=0表示not in

7, SELECT FIELD('mysql','java','Mysql','php'); 返回值:2,表示第一个字符串在后面出现的字符串中出现的位置

8, select LOCATE('Mysql','hello,Im cz good aftertoon mysql') as locate_1,//locate函数表示第一个字符串在第二个字符串中第一次出现的位置,该语句返回22,按字符数数的POSITION('Mysql' IN 'hello,Im cz goodaftertoon mysql') as position_2, //同上,返回22

INSTR('hello,Im cz good aftertoonmysql','Mysql') as instr_3;//跟上面检测顺序反过来了,但是还是返回22,是拿后面的字符串跟前面的找

9,selectELT(3,'good','hello','mysql','name');返回指定位置的字符串


10, SUBSTRING(str,num,len),截取从第num位置开始截取,截取长度为len长,索引都是从1开始的

11, INSERT(str,pos,len,newstr)  ,返回,从str的第pos位置开始,一直到len个长度,都用newstr来代替,


12, REPLACE(str,substr,newstr)  //功能类似上面,将str中的substr字符串用newstr来替换


二:使用数值函数

2.1, SELECT RAND();//返回0-1的随机数

2.2,ROUND(x,y);//返回数值x的四舍五入后有y位小数的数值,注意有四舍五入

SELECT ROUND(2.6266,3);//2.627

2.3,TRUNCATE(x,y)//返回数值x,留y位小数,没有四舍五入

SELECT TRUNCATE(2.6264,3); //2.626

三:日期函数:

3.1 当前日期now(),当前时间戳UNIX_dTIMESTAMP(时间日期)---》毫秒数,

将时间戳转为普通格式:FROM_UNIXTIME(时间戳)à日期格式


3.2

selectYEAR('2018-6-18') '年',

                     QUARTER('2018-6-18') '季度',

      MONTH('2018-6-18') '月',

      WEEK('2018-6-18') '星期(是一年中的第几个星期)',

      aDAYOFMONTH('2018-6-18') '天(一个月中第几天)';


3.3关于星期的函数:

       1)select WEEKDAY('2018-6-18') '星期';注意:返回值是在0-6, 0表示星期1,1表示星期二,以此类推,即得出的数加1就是当前星期几

       2)select DAYOFWEEK('2018-6-18') '星期'; 注意:返回值是在1-7, 1表示星期日, 2表示星期三, 以此类推,掌握规律

3.4 关于天的函数

      1)selectDAYOFMONTH('2018-6-18') 当月的第几天,DAYOFYEAR('2018-6-18') 当年的第几天; 需要注意的是老外和我们的天数不一定是一样的。

3.5 关于日期计算的函数

SELECT'2018-6-18',ADDDATE('2018-6-18',5) 加上5天后的日期,SUBDATE('2018-6-18',5) 减去5天后的日期;

-------------------------------更新-------------------

日期中FROM_UNIXTIME(时间戳)可以设置格式,

如:FROM_UNIXTIME(datetime,'%Y-%m-%d') from 表名 这样他会按照该格式显示日期,即年-月-日显示

注意了:没有格式则会显示所有时间格式,包括时分秒

猜你喜欢

转载自blog.csdn.net/weixin_37751634/article/details/80688774
今日推荐