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')
   
   
相关推荐
zjjuejin3 分钟前
Maven 现代开发流程的集成
java·后端·maven
Zzzzmo_14 分钟前
【Java】杨辉三角、洗牌算法
java·数据结构·算法
码界奇点14 分钟前
基于飞算JavaAI的在线图书借阅平台从设计到实现的完整指南
java·飞书
QiZhang | UESTC14 分钟前
JAVA算法练习题day27
java·开发语言·c++·算法·leetcode·hot100
hrrrrb15 分钟前
【Spring Boot】Spring Boot 中常见的加密方案
java·spring boot·后端
Lilian18 分钟前
Trae通过ssh远程访问服务器linux系统不兼容问题
后端·trae
十碗饭吃不饱18 分钟前
sql报错:java.sql.SQLSyntaxErrorException: Unknown column ‘as0‘ in ‘where clause‘
java·数据库·sql
123445226 分钟前
Spring Boot 启动流程全解析:从 SpringApplication.run() 到 Bean 初始化与自动配置
后端
饼干吖30 分钟前
记一次滑动数组解题
java·算法
ss27339 分钟前
手写MyBatis第96弹:异常断点精准捕获MyBatis深层BUG
java·开发语言·bug·mybatis