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')
   
   
相关推荐
smallYoung1 小时前
【学习笔记】中间件-RabbitMQ
后端
三千星1 小时前
Java开发者转型AI工程化Week 3:从LangChain4j到AI Agent
后端·langchain
duke8692672141 小时前
JavaScript数组扁平化flat与flatMap处理嵌套数据
jvm·数据库·python
夏沫琅琊1 小时前
Mac 上用 Homebrew 安装 DB Browser for SQLite 时,被 Homebrew 自动更新卡住了
数据库·macos·sqlite
ch.ju1 小时前
Java Programming Chapter 3——Subscript of the array
java·开发语言
m0_740796361 小时前
mysql如何通过脚本自动化创建用户_使用shell配合mysql命令
jvm·数据库·python
会编程的土豆1 小时前
Gin 框架第一课:从 0 搞懂 Gin 最基础的路由
数据库·sql·gin·goland
雨浓YN1 小时前
GKTGD 工业监控系统-02MySQL 数据库技术文档(类库:NET8_SQLData)
数据库·wpf
雨落在了我的手上1 小时前
初识java(三):运算符
java·开发语言
dFObBIMmai1 小时前
JavaScript中对象生命周期与垃圾回收的引用关系
jvm·数据库·python