1、mysql函数是工做中极其经常使用的知识,但不少时候会常常忘记,故在在此作一个总结
一、对时间的操做的函数mysql
//获取当前的时间 前一天 select date_sub(CURRENT_DATE,interval 1 day) //获取当前的时间 后一天 select date_sub(CURRENT_DATE,interval -1 day) //获取当前的时间 前一个月 select date_sub(CURRENT_DATE,interval 1 month) //获取当前的时间 前一个年 select date_sub(CURRENT_DATE,interval 1 year) select now(),CURRENT_DATE,CURRENT_TIME from dual //经过对 now() 的一些处理 获取不一样时间格式的时间 select date_format(now(),'%Y/%m/%d'); select time_format(now(),'%H-%i-%S'); //对时间戳转化为字符串 from_unixtime(time/1000,'%Y-%m-%d %H:%i:%s') //将字符串转化为时间 SELECT STR_TO_DATE('2019-09-01', '%Y-%m-%d') VAULE //对当前时间减小固定时间 //当前时间前5分钟 select now() -interval 5 MINUTE //当前时间后5分钟 select now() +interval 5 MINUTE //当前时间前5小时 select now() -interval 5 HOUR //将时间戳转化为字符串 select from_unixtime(dt/1000,'%Y-%m-%d') //获取当前时间前5天的时间的时间戳 select unix_timestamp(now() - interval 5 day)
二、对字符串操做的函数web
//locate(s1,s2) 表示是s1在s2的位置(能够经过判断s1是否在存在s2) select locate('df','sdfhf') //lower(s) 对s字符串转化为小写 select LOWER('GFJ') //upper(s) 对s字符串转化为大写 select upper('Gsdf') //left(s,2) 返回字符串的前两位 select left('Gsdf',2) //lpad(s,len,s1) 在字符串 s 的左边 处填充字符串 s1, 使字符串长度达到 len select lpad('34',4,'0') //rpads,len,s1) 在字符串 s 的右边边 处填充字符串 s1, 使字符串长度达到 len select rpad('34',4,'0') //substr(s,start,len) 将s字符串 从第 start个字符开始,截图len长度为len的字符【同substring(s,start,len)】 select substr('abcdef',2,3) select substring('abcdef',2,3) //SUBSTRING_INDEX(s, 's1', n) 截取 s字符串出现s1第 n个字符的字符串(从头部到n个字符的字符串) select SUBSTRING_INDEX('abcdef', 'c', 1) //SUBSTRING_INDEX(s, 's1', n) 截取 s字符串出现s1第 n个字符的字符串(从尾部到n个字符的字符串) select SUBSTRING_INDEX('abcdef', 'c', -1)
三、经常使用的其余函数sql
//convert('234.32',decimal()) 字符串 转化为保留两位小数的数字 select CONVERT('34.54534',decimal(5,2)) //cast将小数转化为保留两位小数的数字 select cast(34.5453,decimal(5,2)) //SQL_CALC_FOUND_ROWS ,FOUND_ROWS() 共同使用 (用于使用相似count) select SQL_CALC_FOUND_ROWS * from sys_user SELECT FOUND_ROWS(); //case when用法 select case '1' when '1' then '男' when '2' then '女' else '其余' end
四、索引经常使用语句数据库
//查看表全部的索引 show index from user_table; // 添加索引 alter table user_table add index id_name_index(uuid,name); alter table user_table ADD UNIQUE (column) alter table user_table ADD PRIMARY KEY (columnt) //删除索引 drop index id_name_index on user_table;
五、sql进程操做(删除死锁)session
//查看全部进程 show processlist; //当前运行的全部事务 (trx_mysql_thread_id) select * from information_schema.innodb_trx; //当前出现的锁 (lock_id) select * from information_schema.innodb_locks; //死锁删除进程 id(show processlist 出现id列名) kill id;
六、对表操做的常见语句svg
//在name后面添加password1这一列 alter table user_table add column password1 varchar(255) after name; //删除列 alter table user_table drop column password1; //修改列的类型 alter table user_table modify password1 varchar(125); //修改列名称 alter table user_table change column password password2 varchar(255) ;
七、时区经常使用函数函数
将时间查询时间由数据库时间转化为东八区 select CONVERT_TZ('2020-01-06', @@session.time_zone,'+8:00') #查看时区 show variables like "%time_zone%"; ##修改mysql全局时区为北京时间,即咱们所在的东8区 set global time_zone = '+8:00'; ##修改当前会话时区 为utc时间 set time_zone = '+00:00';