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')
   
   
相关推荐
火烧屁屁啦15 分钟前
【JavaEE进阶】初始Spring Web MVC
java·spring·java-ee
w_312345429 分钟前
自定义一个maven骨架 | 最佳实践
java·maven·intellij-idea
岁岁岁平安31 分钟前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA35 分钟前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
Q_192849990641 分钟前
基于Spring Boot的九州美食城商户一体化系统
java·spring boot·后端
sdaxue.com1 小时前
帝国CMS:如何去掉帝国CMS登录界面的认证码登录
数据库·github·网站·帝国cms·认证码
张国荣家的弟弟1 小时前
【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
java·jar·bi
ZSYP-S1 小时前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos1 小时前
C++----------函数的调用机制
java·c++·算法