当前位置: 首页 > news >正文

MySQL【内置函数】

一、日期函数

1.1 基础获取时间 / 日期

-- 获取当前日期 select current_date(); -- 结果示例:2017-11-19 -- 获取当前时间 select current_time(); -- 结果示例:13:51:21 -- 获取当前时间戳(推荐now()) select current_timestamp(); -- 结果示例:2017-11-19 13:51:48 select now(); -- 与上一句结果一致

1.2 日期的增减运算

-- 日期加10天 select date_add('2017-10-28', interval 10 day); -- 结果:2017-11-07 -- 日期减2天 select date_sub('2017-10-01', interval 2 day); -- 结果:2017-09-29

1.3 计算两个日期的天数差

-- 计算2017-10-10与2016-09-01相差的天数 select datediff('2017-10-10', '2016-9-1'); -- 结果:404

1.4 案例

1)生日表:登记生日的日期

2)留言表时间处理 :

创建留言表并筛选 2 分钟内的留言,是非常典型的业务场景:

-- 创建留言表 create table msg ( id int primary key auto_increment, content varchar(30) not null, sendtime datetime -- 留言时间 ); -- 插入测试数据 insert into msg(content,sendtime) values('hello1', now()); insert into msg(content,sendtime) values('hello2', now()); -- 仅显示留言的日期(去除时间) select content,date(sendtime) from msg; -- 查询2分钟内发布的留言 select * from msg where date_add(sendtime, interval 2 minute) > now();

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

二、字符串函数

字符串处理是 MySQL 开发的另一大高频需求,比如拼接字符串、替换字符、截取子串、获取字符长度等,掌握字符串函数能让文本数据的处理更灵活。

instr

ucase / lcase / length

left / right

rtrim/ltrim/trim

2.1 charset (str)

获取字符串的字符集

-- 获取EMP表中ename列的字符集 select charset(ename) from EMP;

2.2 concat (str1, str2, ...)

字符串拼接

常用于自定义结果展示格式,比如拼接学生成绩信息:

-- 格式:XXX的语文是XXX分,数学XXX分,英语XXX分 select concat(name, '的语文是',chinese,'分,数学是',math,'分,英语是',english,'分') as '分数' from student;

2.3 length (str)

获取字符串的字节长度

注意:该函数按字节计算长度,单字节字符(字母、数字)占 1 个字节,多字节字符(如中文)占多个字节(与字符集相关,如 UTF-8 中中文占 3 个字节)。

-- 查询学生姓名的字节长度 select length(name), name from student;

2.4 replace (str, old_str, new_str)

字符替换 , 将指定字符 / 子串替换为新的内容

注意,这里只是字符串级别的替换,不更改字符串这里的原始的数据!!!

-- 将EMP表中姓名里的'S'替换为'上海' select replace(ename, 'S', '上海') as 新姓名,ename as 原姓名 from EMP;

2.5 substring (str, start, length)

截取子串

从指定位置开始,截取指定长度的子串(注意:MySQL 中字符串起始位置为 1)

2.6 lcase (str)/lower (str)

字符串转小写

结合截取函数,实现首字母小写的需求

-- 员工姓名首字母小写,其余不变 select concat(lcase(substring(ename, 1, 1)),substring(ename,2)) as 新姓名 from EMP;

三、数学函数

在处理数值型数据时,MySQL 的数学函数能实现绝对值、取整、四舍五入、生成随机数等操作,替代手动的数值计算逻辑。

四、其他函数

除了上述三类核心函数,MySQL 还有一些实用的通用函数,能解决用户查询、加密、空值处理等场景的问题,实用性拉满。

user ():查询当前登录 MySQL 的用户

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

加密相关函数

  • md5(str):对字符串进行MD5 摘要,生成 32 位的加密字符串,常用于密码、敏感信息的轻量加密;
  • password(str)MySQL 专用的密码加密函数,生成加密后的字符串,用于数据库用户密码设置。
  • 密码在数据库中不能明文保存,所以我们要对密码进行加密~

案例演示:

ifnull (val1, val2):空值处理神器

功能:如果 val1 为 NULL,则返回 val2;如果 val1 不为 NULL,则返回 val1。常用于解决查询结果中的空值问题,避免数据展示异常

http://www.jsqmd.com/news/489499/

相关文章:

  • python全栈(基础篇)——day02:后端内容(简介与历史+简单数据类型与变量+python运行模式+输入输出+实战演示+每日一题)
  • 杭州柏来科技有限公司:7kW-2400kW 全功率充电桩源头厂家,打造全场景智慧充电解决方
  • 告别阻塞!用 PHP TrueAsync 实现 PHP 脚本提速 10 倍
  • Pinia 状态管理实战 | 从 0 到 1 搭建 Vue3 项目状态层(附模块化 / 持久化)
  • 遗传蚁群混合改进算法在VRPTW类问题上的探索
  • Comfort Lang 规范正式发布!基于 Python 生态的极简命令式交互语言标准
  • 在线图片压缩工具核心JS实现
  • Vue三元表达式
  • 论文问卷设计“救星”:一个工具解决毕业季调研全流程难题
  • k8s证书有效期修改为10年
  • 如何让Agent智能选工具?
  • OpenClaw v2026.3.7 史诗级更新!Context Engine 上线,AI 记忆可插拔,普通用户也能玩出极客级效果
  • Nginx 安全防护与 HTTPS 部署实战全解析
  • “你还在为树形结构处理犯难?一文掌握Java组合模式的应用场景!”
  • 软件测试实验室申请CNAS/CMA资质费用预算清单
  • UL+FDA双认证:福尔蒂医用导管色母量产前7轮迭代实录
  • Linux命令行最基础操作指南(新手入门必看)
  • Python 工程化实战:从目录结构到 VSCode 完美配置
  • HTB - VariaType
  • GD60920你一定很少听说,但它可能就在你身边:智能照明应用解决方案分享(全文干货)
  • 2026跑腿创业,市面上系统那么多,为什么我独推荐诚心呈意共享骑手系统?
  • 高可用:mysql主备keepAlived+vip
  • dhcp技术
  • 字符串!!!!
  • PMP认证备考全攻略:从报名到3A通过的实战经验分享
  • **Sora仿真人剧2025推荐,解锁沉浸式互动叙事新体验*
  • 无人机飞控系统专业术语
  • 东南大学提出 AutoIAD:多 Agent 驱动的工业异常检测自动化框架
  • 大晓机器人开源Kairos 3.0-4B:具身世界模型性能全面领跑
  • mysql转postgres 字段定义备忘