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')
   
   
相关推荐
科技资讯早知道2 分钟前
java计算机毕设课设—坦克大战游戏
java·开发语言·游戏·毕业设计·课程设计·毕设
全栈师7 分钟前
SQL Server中关于个性化需求批量删除表的做法
数据库·oracle
Data 31715 分钟前
Hive数仓操作(十七)
大数据·数据库·数据仓库·hive·hadoop
BergerLee44 分钟前
对不经常变动的数据集合添加Redis缓存
数据库·redis·缓存
小比卡丘1 小时前
C语言进阶版第17课—自定义类型:联合和枚举
android·java·c语言
gorgor在码农1 小时前
Mysql 索引底层数据结构和算法
数据结构·数据库·mysql
xmh-sxh-13141 小时前
java 数据存储方式
java
liu_chunhai1 小时前
设计模式(3)builder
java·开发语言·设计模式
姜学迁1 小时前
Rust-枚举
开发语言·后端·rust
bug菌¹2 小时前
滚雪球学Oracle[6.2讲]:Data Guard与灾难恢复
数据库·oracle·data·灾难恢复·guard