MySQL—函数

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL—函数

数值函数


  1. ROUND(a,b)–四舍五入,a为数值,b为精确到几位小数;
  2. TRUNCATE(a,b)–截断数字,a为数值,b为截断后保留小数位数;
  3. CEILING(a)–返回大于或等于这个数字的最小整数;
  4. FLOOR(a)–返回小于或等于这个数字的最大整数;
  5. ABS(a)–计算绝对值;
  6. RAND()–生成0-1区间的随机浮点数;(不用赋值,直接运行,每次运行结果都是不一样的0-1间浮点数);

例:

select truncate(5.7657,3);————5.765
select truncate(7.987498,2);————7.98
select ceiling(5.6);————6
select ceiling(5.2);————6
select floor(5.6);————5
select floor(5.2);————5
select abs(-5.6);————5.6
select abs(6.6);————6.6


字符串函数


  1. LENGTH()–计算字符串中的字符数;
  2. UPPER()–将字符串转化为大写;
  3. LOWER()–将字符串转化为小写;
  4. LTRIM()–移除字符串左侧的空白字符;
  5. RTRIM()–移除字符串右侧的空白字符;
  6. TRIM()–移除字符串前面以及后面的所有空格;
  7. LEFT(a,b)–返回字符串左侧几个字符,a为字符串,b为保留字符串左侧几位字符;
  8. RIGHT(a,b)–返回字符串右侧几个字符,a为字符串,b为保留字符串右侧几位字符;
  9. SUNSTRING(a,b,c)–可以得到一个字符串中任何位置的字符。a为字符串,b为起始位置,c为长度;
  10. SUNSTRING(a,b)–不输入长度参数,会得到从起始位置开始到字符串最后的所有字符;
  11. LOCATE(a,b)–返回第一个字符或者字符串第一次出现的位置,a为查找的字符或字符串,b为要查找的字符串。a不存在,结果返回0;
  12. REPLACE(a,b,c)–替换函数,用c替换b。a为字符串,b为替换什么,c为替换为什么。
  13. CONCAT(a,b)–串联两个字符串,a、b为两个字符串
  14. substring_index(FIELD, sep, n)–可以将字段FIELD按照sep分隔:
    (1).当n大于0时取第n个分隔符(n从1开始)之后的全部内容;
    (2).当n小于0时取倒数第n个分隔符(n从-1开始)之前的全部内容;


例:

select length('sky');————3
select length('哈哈');————6
select upper('sky');————SKY
select lower('Sky');————sky
select ltrim('     yes');————yes
select rtrim('yes     ');————yes
select left('kindgarden',4);————kind
select right('kindgarden',6);————garden
select left('好好学习,天天向上',4);————好好学习
select right('好好学习,天天向上',4);————天天向上
select substring('kindgarden',5,3);————gar
select substring('kindgarden',5);————garden
select locate('n',kindgarden');————3
select replace('kindgarden','garden','garten');————kindgarten
select concat('first_name',' ','last_name');————first_name last_name


日期函数


  1. NOW()–2022-03-14 12:34:03
  2. CURDATE()–2022-03-14
  3. CURTIME()–12:34:03
  4. YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()–返回年月日时分秒
  5. DAYNAME()–返回周几
  6. MONTHNAME()–返回月份
  7. EXTRACT(YEAR\MONTH\DAY\SECOND\MINUTE\HOUR FROM NOW())–从now()日期中提取年/月/日/秒/分/时


格式化日期和时间


  1. DATE_FORMAT(a,b)–将日期格式化,a为日期值,b为格式字符串;
  2. TIME_FORMAT(a,b)–时间格式化,a为日期值,b为格式字符串;

更多格式字符串谷歌搜索mysql date format string

例:

select date_format(now(), '%M %d %Y');————March 14 2022
select time_format(now(), '%H:%I %p');————12:45 PM


注意:

ymd大小写对于输出的日期有所不同

  1. %Y–2022; %y–22
  2. %M–March; %m–3
  3. %D–2nd; %d–02


计算日期和时间


  1. DATE_ADD(a,b)–在日期a基础上增加b的时间,a为日期,b为表达式(INTERVAL 1 DAY\YEAR…)
  2. DATE_SUB(a,b)–在日期a基础上减去b的时间,a为日期,b为表达式(INTERVAL 1 DAY\YEAR…)
  3. DATEDTFF(a,b)–计算两个日期或时间的间隔,a-b,a、b为两个日期。a、b若为日期(2022-03-05或2022-03-05 12:25:35),返回结果为天数
  4. TIME_TO_SEC(a)–返回从零点计算的秒数。用减法可计算a、b之间差的秒数。
  5. 时间差:

TIMESTAMPDIFF(interval, time_start, time_end)可计算time_start-time_end的时间差,单位以指定的interval为准,常用可选:

SECOND 秒

MINUTE 分钟(返回秒数差除以60的整数部分)

HOUR 小时(返回秒数差除以3600的整数部分)

DAY 天数(返回秒数差除以3600*24的整数部分)

MONTH 月数

YEAR 年数

例:

select date_add(now(),intercal 1 day);————2022-03-16 13:26:25  # 在now()日期基础上加一天
select date_add(now(),intercal 1 year);————2023-03-15 13:26:25  # 在now()日期基础上加一年
select date_add(now(),intercal -1 year);————2021-03-15 13:26:25  # 在now()日期基础上加负一年
select date_sub(now(),intercal 1 year);————2021-03-15 13:26:25  # 在now()日期基础上减一年
select datediff(2022-03-07,2022-03-03);————4
select time_to_sec('09:00');————32400
select time_to_sec('09:00')-select time_to_sec('09:02');————-120
select * from table where TIMESTAMPDIFF(MINUTE, start_time, submit_time) < 5


其他函数


  1. IFNULL(a,b)–如果a为NULL,则结果返回b;
  2. COALESCE(a,b,c,…)–如果a为NULL,结果返回b,如果b也NULL,则结果返回c。返回参数中的第一个非空值;

49c18edd1c9a4dfba54c05b46a601f86.png

IFNULL与COALESCE区别:IFNULL可以用其他内容替换空值;而COALESCE会返回参数里的第一个非空值。

0e4ecf46a2b042eb8fbb425f9e7d5ea0.png

c791f1997ab8447899bf18c87c244a53.png

3、IF(expression,a,b)–第一个参数为条件,若为true则返回a,否则返回b。a、b可以为任何值,字符串、日期、数字、空值……;

7c27d69037d04518a75d54141ec7e089.png

4、CASE–有多个测试条件,且想要针对每个条件返回不同值的时候可以使用CASE运算符,格式如下:

CASE
    WHEN 条件1 THEN 返回值1
    WHEN 条件2 THEN 返回值2
    WHEN 条件3 THEN 返回值3
    ……
    ELSE 返回值
END


f7898b34a9a1491ab70efdf650daf2ab.png

注意:

  1. **count()**函数不计空值
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
93 1
Mysql(5)—函数
|
2天前
|
SQL 关系型数据库 MySQL
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
|
18天前
|
SQL 关系型数据库 MySQL
MySQL常见函数第二期,你都用过哪些呢 ?
本期介绍了20个常用的MySQL函数,涵盖日期处理(如CURDATE()、DATE_FORMAT())、数学运算(如ABS()、ROUND())、统计分析(如COUNT()、SUM())等,帮助提高SQL查询效率和数据处理能力。希望对大家的学习有所帮助。
59 7
|
20天前
|
关系型数据库 MySQL
MySQL常见函数第一期,你都用过哪些呢 ?
本期介绍10个常用的MySQL函数:字符串连接(CONCAT)、提取子字符串(SUBSTRING)、获取字符串长度(LENGTH)、转换大小写(UPPER、LOWER)、去除空格(TRIM)、替换字符串(REPLACE)、查找子字符串位置(INSTR)、带分隔符的字符串连接(CONCAT_WS)以及获取当前日期时间(NOW)。
56 8
|
21天前
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
25天前
|
关系型数据库 MySQL 数据处理
【MySQL】函数
MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。
28 3
|
27天前
|
关系型数据库 MySQL 数据处理
MySQL函数与约束
MySQL 提供了丰富的函数和强大的约束机制,用于数据处理和完整性维护。通过掌握这些工具,可以有效地管理和分析数据库中的数据,确保数据的一致性和准确性。无论是在日常数据查询中使用内置函数,还是在数据库设计中应用各种约束,都是确保数据库系统稳定、高效运行的关键。希望本文对您理解和应用 MySQL 函数与约束有所帮助。
31 1
|
1月前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
37 1
|
2月前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
MySQL 存储函数及调用
205 3
|
1月前
|
SQL NoSQL 关系型数据库