MySQL-内置函数
目录
一、日期函数 编辑
二、字符串函数 编辑
三、数学函数 编辑
四、其它函数
在数据库操作中,函数是提升数据处理效率与灵活性的关键工具。MySQL 提供了丰富的函数,涵盖日期处理、字符串操作、数学计算等多个场景。本文将结合实际案例,深入讲解常用函数的用法,助力大家高效处理数据。
一、日期函数

日期处理在业务开发中极为常见,MySQL 的日期函数可轻松获取、计算时间信息。
1. 获取时间信息
- current_date():获取当前日期,格式如 2025-08-29 ,用于记录生日表(如 tmp 表)的日期数据插入,语句 insert into tmp(birthday) values(current_date()); 能便捷录入当前日期 。
- current_time():获取当前时间,像 11:49:00 这样的时分秒形式,适合关注时间点的场景 。
- current_timestamp():获取当前时间戳,包含日期和时间,如 2025-08-29 11:49:00 ,留言表 msg 插入数据时用 now() (效果类似)记录发送时间,语句 insert into msg(content,sendtime) values('hello1', now()); 。
2. 日期计算
- date_add(date, interval d_value_type):给日期添加时间间隔。例如 select date_add('2017-10-28', interval 10 day); ,能算出 2017-11-07 ,可用于会员有效期延长等场景 。
- date_sub(date, interval d_value_type):从日期减去时间间隔,如 select date_sub('2017-10-01', interval 2 day); 得到 2017-09-29 ,适用于计算截止日期等 。
- datediff(date1, date2):计算两个日期差值,单位为天。比如 select datediff('2017-10-10', '2016-09-01'); 得出 404 ,可用于统计活动持续天数 。
二、字符串函数

字符串函数用于处理字符内容,满足格式化、替换、截取等需求。
1. 基础操作
- charset(str):返回字符串字符集,如 select charset(ename) from EMP; 可查看 EMP 表 ename 列字符集 。
- concat(string2 [,...]):连接字符串,像 select concat(name, '的语文是',chinese,'分,数学',math,'分,英语',english,'分') as '分数' from student; ,能按指定格式拼接学生成绩信息 。
2. 进阶处理
- length(string):获取字符串长度(按字节算),多字节字符(如中文)占多个字节, select length(name), name from student; 可统计学生姓名字节数 。
- replace(str, search_str, replace_str):替换字符串内容, select replace(ename, 'S', '上海') ,ename from EMP; 把 EMP 表 ename 字段里的 S 换成 上海 。
- substring(str, position [,length]):截取字符串, select substring(ename, 2, 2), ename from EMP; 截取 ename 字段第 2 到第 3 个字符,可用于提取部分字符信息 。
三、数学函数

数学函数助力数值运算,简化复杂计算流程。
1. 常用计算
- abs(number):求绝对值, select abs(-100.2); 得到 100.2 。
- ceiling(number):向上取整, select ceiling(23.04); 结果为 24 。
- floor(number):向下取整, select floor(23.7); 得出 23 。
- format(number, decimal_places):格式化小数,保留指定位数, select format(12.3456, 2); 得到 12.35 (四舍五入) 。
四、其它函数
除上述类别,还有实用的“其它函数”。
- user():查询当前用户, select user(); 了解数据库当前登录用户 。
- md5(str):对字符串做 MD5 摘要,生成 32 位字符串, select md5('admin') 可用于简单密码加密存储(实际场景建议更安全的加密方式) 。
- database():显示当前使用的数据库, select database(); 快速知晓操作的数据库 。
- ifnull(val1, val2):处理空值, val1 为 null 则返回 val2 ,否则返回 val1 ,如 select ifnull('abc', '123'); 返回 abc , select ifnull(null, '123'); 返回 123 ,可用于数据查询时的空值替换,保证结果规整 。
掌握这些 MySQL 函数,能大幅提升数据处理效率,无论是简单的时间获取、字符串拼接,还是复杂的数值计算、空值处理,都可借助函数轻松实现。在实际开发中,灵活组合运用函数,让数据库操作更高效、更贴合业务需求!