MySql常用函数总结

大家好,我是小趴菜,今天来总结一下MySql中比较常用的一些函数,包括聚合函数,以及字符函数,包括日期和时间的一些函数操作

聚合函数

scss 复制代码
 Max():用于取得列或者表达式的最大值,适用于任务数据类型
 Min():用于取得列或者表达式的最小值,适用于任务数据类型
 Avg():用于取得列或者表达式的平均值,适用于数字类型
 Sum():用于取得或者表达式的总和,使用于数字类型
 Count():用户取得行数得总和
 Instr():返回子字符串在字符串中第一次出现的位置
 group_concat:将字符串从分组中连接成具有各种选项(如distinct,order by)的字符串
     
     

字符函数

scss 复制代码
concat():将二个或多个字符串组合成一个字符串
           select CONCAT(列名1,列名2) from 表名;
           select CONCAT(列名1,'-' ,列名2) from 表名;  -- 列名之间用 - 拼接

 length()/char_length():以字节和字符获取字符串的长度
    select id,title if(CHAR_LENGTH(content) > 20,CONCAT(LEFT(content,20),'..........'),content) content from 表明

 left():获取指定长度的字符串的左边部分
    select id,title,LEFT(content,20) content from 表名

 reverse():字符反转
     select REVERSE(content) content from 表名

 replace():搜索并替换字符串中的子字符串
     REPLACE(str列,old_string,new_string)
     update 表名 set name = REPLACE(name,'xpc','mysql');

 substring():从具有特定长度的位置开始提取一个子字符串
     select substring(列名,6) from 表名

 trim()/LTRIM/RTRIM:从字符串中删除不需要的字符
     select TRIM(both from 列名) from 表名 -- 删除前后空格
     select TRIM(leading from 列名) from 表名 -- 删除前面空格
     select TRIM(trailing from 列名) from 表名 -- 删除后面空格


 find_in_set():在逗号分割的字符串列表中找到一个字符串
     select FIND_IN_SET('t','i,t,p,u,x');

 LOWER(s)/LCASE(s):将字符串s中所有的字符都转为小写
    select LOWER(列名) from 表名

 UPPER(s)/UCASE(s):将字符串s中所有的字符都转为大写
    select UPPER(列名) from 表名

 format():格式化有特定区域设置的数字,摄舍入到小数位数
     
     

时间日期函数

scss 复制代码
curdata():返回当前日期
         select CURDATE();
         select CURDATE()+0;
         select CURRENT_DATE();
         select current_data;

 datediff():计算二个date值之前的天数
     select datediff('2018-01-31','2018-02-31');

 timediff():计算二个时间的差值
     select TIMEDIFF('2017-12-31 23:34:32','2017-12-31 23:34:56');

 day():获取指定日期月份的天
     select DAY('2018-01-31');
     select DAY(LAST_DAY('2018-02-01'));

 date_add():将时间值添加到日志值
     select DATE_ADD('2017-12-31 23:34:32'.interval 1 second); -- 加1秒
     select DATE_ADD('2017-12-31 23:34:32'.interval 1 day); -- 加1天
     select DATE_ADD('2017-12-31 23:34:32'.interval 1 year); -- 加1年,还有 month,week,hour


 date_sub():从日期值中减去时间值
     select DATE_SUB('2017-12-31 23:34:32'.interval 1 second); -- 减1秒
     select DATE_SUB('2017-12-31 23:34:32'.interval 1 day); -- 减1天
     select DATE_SUB('2017-12-31 23:34:32'.interval 1 year); -- 减1年,还有 month,week,hour

 date_format():根据指定的日期格式格式化日期值

 dayname():获取指定日期的工作日的名称,也就是返回今天是星期几
     select DAYNAME('2018-01-01') -- 返回英文
     set @@lc_time_names='ZH_CN'; 
     select DAYNAME('2018-01-01') --设置中文,这时候返回的就是中文的星期几
    


 dayofweek():返回日期的工作日索引
     select DAYOFWEEK('2018-01-01'); 返回的是一个索引值,1-7代表周日-周六

 extract():提取日期的一部分
     seelct EXTRACT(day from '2018-04-23 15:23:53');
     seelct EXTRACT(month from '2018-04-23 15:23:53');
     seelct EXTRACT(hour from '2018-04-23 15:23:53');

 now():返回当前日期和时间
 month():返回一个表示指定日期的月份的整数
    select MONTH('2018-04-23');

 str_to_date():将字符串转换为基于指定格式的日期和时间值

 sysdata():返回当前日期
   select SYSDATE();
   select SYSDATE(2);  

 week():返回一个日期的星期数值,这一天是在这一年的第几个星期
   select WEEK('2018-3-31')

 year():返回日期的年份
   seelct YEAR('2018-3-31')
   
   
相关推荐
颜酱9 分钟前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
掘金者阿豪12 分钟前
UUID的隐形成本:一个让数据库“慢下来”的陷阱
后端
用户0844652563726 分钟前
Docker 部署 MongoDB Atlas 到服务端
后端
老邓计算机毕设29 分钟前
SSM智慧社区家政服务系统80q7o(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架
风生u30 分钟前
activiti7 详解
java
岁岁种桃花儿39 分钟前
SpringCloud从入门到上天:Nacos做微服务注册中心(二)
java·spring cloud·微服务
Word码42 分钟前
[C++语法] 继承 (用法详解)
java·jvm·c++
TT哇1 小时前
【实习 】银行经理端两个核心功能的开发与修复(银行经理绑定逻辑修复和线下领取扫码功能开发)
java·vue.js
逝水如流年轻往返染尘1 小时前
Java中的数组
java
Anita_Sun1 小时前
一看就懂的 Haskell 教程 - 类型推断机制
后端·haskell