
🔥承渊政道: 个人主页
❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》
✨逆境不吐心中苦,顺境不忘来时路!✨ 🎬 博主简介:

在实际的数据库开发过程中,MySQL 内置函数是提升查询效率与数据处理能力的重要工具.无论是字符串处理、数值计算,还是日期格式转换,合理使用内置函数都能让复杂的SQL语句变得更加简洁高效.本篇文章将围绕 MySQL 常用内置函数展开讲解,结合实际示例帮助你快速掌握
COUNT()、SUM()、AVG()、DATE_FORMAT()、IFNULL()、SUBSTRING()等核心函数的使用方法与应用场景.通过学习这些函数,你不仅可以提升 SQL 编写能力,还能在实际项目中更加灵活地处理数据分析与业务需求.如果你正在系统学习 MySQL,或者希望提升 SQL 实战能力,那么这篇文章将会是一个非常实用的参考指南.废话不多说,下面跟着小编的节奏🎵一起去疯狂的学习吧!

目录
1.日期函数
📅 MySQL日期函数(Date Functions)
在数据库开发中,日期和时间数据几乎无处不在,比如用户注册时间、订单创建时间、日志记录时间等.MySQL 提供了丰富的日期函数,用于对时间数据进行获取、格式化、计算与转换,从而大幅提升数据处理效率.
1️⃣获取当前日期/时间
MySQL 提供了多个获取当前时间的函数:
NOW():返回当前日期和时间(最常用)CURDATE():返回当前日期(不包含时间)CURTIME():返回当前时间(不包含日期)
sql
SELECT NOW();
SELECT CURDATE();
SELECT CURTIME();
2️⃣日期格式化
使用 DATE_FORMAT() 可以将日期转换为指定格式,非常适合前端展示:
sql
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
常用格式说明:
%Y:4位年份%m:月份%d:日期%H:小时(24小时制)%i:分钟%s:秒
3️⃣日期计算
MySQL 支持对日期进行加减操作:
DATE_ADD():日期增加DATE_SUB():日期减少
sql
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY); -- 7天后
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); -- 1个月前
4️⃣日期差值计算
DATEDIFF() 用于计算两个日期之间的天数差:
sql
SELECT DATEDIFF('2026-06-01', '2026-05-20');
5️⃣提取日期部分
可以从日期中提取年、月、日等信息:
sql
SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());
📌小结
MySQL 日期函数在实际业务中非常重要,尤其是在数据统计、时间筛选、报表分析等场景中.熟练掌握这些函数,可以让你在处理时间相关数据时更加高效、灵活.
| 函数名称 | 描述 |
|---|---|
| current_date() | 当前日期 |
| current_time() | 当前时间 |
| current_timestamp() | 当前时间戳 |
| date(datetime) | 返回 datetime 参数的日期部分 |
| date_add(date, interval d_value_type) | 在 date 中添加日期或时间,interval 后的数值单位可以是:year、minute、second、day |
| date_sub(date, interval d_value_type) | 在 date 中减去日期或时间,interval 后的数值单位可以是:year、minute、second、day |
| datediff(date1, date2) | 两个日期的差,单位是天 |
| now() | 当前日期时间 |
获得年月日

获得时分秒

获得时间戳

在日期的基础上加日期

在日期的基础上减去时间

计算两个日期之间相差多少天

案例1:创建一张表,记录生日

案例2:创建一个留言表

显示所有留言信息,发布日期只显示日期,不用显示时间

请查询在2分钟内发布的帖子

bash
理解:
------------------------------|-----------|-------------|------------------
初始时间 now() 初始时间+2min
2.字符串函数
MySQL中的字符串函数(String Functions)用于对文本数据进行处理,比如拼接、截取、查找、替换、大小写转换等.
| 函数 | 说明 |
|---|---|
| charset(str) | 返回字符串字符集 |
| concat(string2, ...) | 连接字符串 |
| instr(string, substring) | 返回substring在string中首次出现的位置,没有返回0 |
| ucase(string2) | 转换成大写 |
| lcase(string2) | 转换成小写 |
| left(string2, length) | 从左边截取length个字符 |
| length(string) | 返回字符串长度 |
| replace(str, search_str, replace_str) | 用replace_str替换search_str |
| strcmp(string1, string2) | 逐字符比较两个字符串大小 |
| substring(str, position , length) | 从position开始截取length个字符 |
| ltrim(string) | 去除左侧空格 |
| rtrim(string) | 去除右侧空格 |
| trim(string) | 去除两边空格 |
案例
获取emp表的ename列的字符集

要求显示exam_result表中的信息,显示格式:"XXX的语文是XXX分,数学XXX分,英语XXX分"

求考试表中学生姓名占用的字节数

注意:length函数返回字符串长度,以字节为单位.如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节.比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)
将EMP表中所有名字中有S的替换成'上海'

截取EMP表中ename字段的第二个到第三个字符

以首字母小写的方式显示所有员工的姓名

3.数学函数
MySQL 的数学函数(Math Functions)可以帮你做各种数值计算.
| 函数名称 | 描述 |
|---|---|
| abs(number) | 绝对值函数 |
| bin(decimal_number) | 十进制转换二进制 |
| hex(decimal_number) | 转换成十六进制 |
| conv(number, from_base, to_base) | 进制转换 |
| ceiling(number) | 向上取整 |
| floor(number) | 向下取整 |
| format(number, decimal_places) | 格式化,保留小数位数 |
| rand() | 返回随机浮点数,范围[0.0, 1.0) |
| mod(number, denominator) | 取模,求余 |
绝对值

向上取整

向下取整

保留2位小数位数(小数四舍五入)

产生随机数

4.其它函数
user() 查询当前用户

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串

database()显示当前正在使用的数据库

password()函数,MySQL数据库使用该函数对用户加密

ifnull(val1,val2)如果val1为null,返回val2,否则返回val1的值

5.查找字符串中逗号出现的次数(实战OJ)

sql
SELECT
id,
LENGTH(string) - LENGTH(REPLACE(string, ',', '')) AS cnt
FROM strings;





🚀真正的勇者不是流泪的人,而是含泪奔跑的人!
敬请期待下一篇文章内容
每日心灵鸡汤: 以读书对抗自我!
只要我一直读书,我就能够一直理解自己的痛苦,一直与自己的无知、狭隘、偏见、阴暗见招拆招.很多人说和自己握手言和.我不要做这样的人,我要拿石头打磨我这块石头.
