《MySQL数据库基础》7.内置函数

💡Yupureki:个人主页

✨个人专栏:《C++》 《算法》《Linux系统编程》《高并发内存池》《MySQL数据库》

《个人在线OJ平台》《Linux网络编程》《CMake自动化构建工具》《Redis数据库》


🌸Yupureki🌸的简介:


1. 时间函数

函数 说明 示例(假设当前 2026-05-26 14:30:00)
NOW() 当前日期时间 SELECT NOW();2026-05-26 14:30:00
CURDATE() 当前日期 SELECT CURDATE();2026-05-26
CURTIME() 当前时间 SELECT CURTIME();14:30:00
DATE_FORMAT(d,fmt) 格式化日期 SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日');2026年05月26日
DATEDIFF(d1,d2) 日期差(天数) SELECT DATEDIFF('2026-06-01','2026-05-26');6
TIMESTAMPDIFF(unit,d1,d2) 指定单位时间差 SELECT TIMESTAMPDIFF(HOUR,'2026-05-26 10:00','2026-05-26 14:30');4
DATE_ADD(d,INTERVAL val unit) 日期加法 SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);
DATE_SUB(d,INTERVAL val unit) 日期减法 SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);
YEAR(d) / MONTH(d) / DAY(d) 提取年/月/日 SELECT YEAR(NOW());2026
UNIX_TIMESTAMP() 当前 Unix 时间戳 SELECT UNIX_TIMESTAMP(); → 秒级时间戳

常用格式符:%Y 四位年,%m 两位月,%d 两位日,%H 24小时,%i 分钟,%s 秒。

1.1 获得年月日

sql 复制代码
select current_date();

1.2 获得时分秒

sql 复制代码
select current_time();

1.3 获得时间戳

sql 复制代码
select current_timestamp();

1.4 日期相加

sql 复制代码
select date_add('2001-1-1',interval 10 day);
select date_add('2001-1-1',interval 10 month);
select date_add('2001-1-1',interval 10 year);

1.5 日期相减

sql 复制代码
select date_sub('2001-1-1',interval 10 day);
select date_sub('2001-1-1',interval 10 month);
select date_sub('2001-1-1',interval 10 year);

2. 字符串函数

函数 说明 示例
CONCAT(s1,s2,...) 拼接字符串 SELECT CONCAT('Hello',' ','World');Hello World
SUBSTRING(s,pos,len) 截取子串(下标从 1 开始) SELECT SUBSTRING('MySQL',2,3);ySQ
LEFT(s,n) / RIGHT(s,n) 左/右取 n 个字符 SELECT LEFT('abcdef',3);abc
LENGTH(s) 字节长度 SELECT LENGTH('你好'); → 6(UTF8 下中文 3 字节)
CHAR_LENGTH(s) 字符个数 SELECT CHAR_LENGTH('你好'); → 2
REPLACE(s,from,to) 替换子串 SELECT REPLACE('abc123','123','xyz');abcxyz
TRIM(s) 去除两端空格 SELECT TRIM(' hi ');hi
UPPER(s) / LOWER(s) 大小写转换 SELECT UPPER('mysql');MYSQL
INSTR(s,sub) 子串首次出现位置 SELECT INSTR('MySQL','SQL'); → 3
LPAD(s,len,pad) / RPAD 左/右填充到指定长度 SELECT LPAD('5',3,'0');005

2.1 拼接字符串

sql 复制代码
select concat("123","456");

2.2 截取字串

sql 复制代码
select substring("123456789",2,3);

2.3 字节长度

sql 复制代码
select length("你好");

2.4 字符个数

sql 复制代码
select char_length("你好");

3. 数学函数

函数 说明 示例
ROUND(x,d) 四舍五入,d 为小数位数 SELECT ROUND(3.1415,2);3.14
CEIL(x) / CEILING(x) 向上取整 SELECT CEIL(2.1);3
FLOOR(x) 向下取整 SELECT FLOOR(2.9);2
ABS(x) 绝对值 SELECT ABS(-10);10
MOD(n,m) 取模(求余) SELECT MOD(10,3);1
RAND() 0~1 随机数 SELECT RAND();0.713...
TRUNCATE(x,d) 截断小数,不四舍五入 SELECT TRUNCATE(3.149,2);3.14
POWER(x,y) x 的 y 次方 SELECT POWER(2,3);8

3.1 绝对值

sql 复制代码
select abs(-1);

3.2 取模

sql 复制代码
select mod(10,3);

3.3 n次方

sql 复制代码
select power(2,3);

3.4 随机数

4. 系统信息函数

函数 说明
VERSION() MySQL 版本
DATABASE() 当前数据库
USER() 当前连接用户
CONNECTION_ID() 连接 ID

4.1 MySQL版本

sql 复制代码
select version();

4.2 当前数据库

sql 复制代码
select database();

4.3 当前连接用户

sql 复制代码
select user();
相关推荐
王志来137944730085 分钟前
聚焦五大核心场景:工控服务器机箱平台的垂直深耕之路
运维·服务器·python
ii_best19 分钟前
手机自动化脚本按键精灵实战:随机布局安全数字键盘的自动化输入方案
android·运维·ios·自动化·手机
鲁邦通物联网21 分钟前
充电站底层脱机DLB引擎解构:基于Linux调度的边缘计算网关并发控制实战
linux·运维·人工智能·边缘计算·边缘计算网关·5g数采·工业级边缘计算网关
隔窗听雨眠22 分钟前
MySQL索引机制深度解析:从B+树原理到高并发查询优化的完整指南
数据库·b树·mysql
数智化管理手记23 分钟前
数据质量无法保障?自动化数据质量规则校验如何搭建方案?
大数据·数据库·自动化
我的xiaodoujiao34 分钟前
使用PyMySQL模块技术操作MySQL数据库
数据库·python·测试工具·mysql
便利店102441 分钟前
边界与远程:墙、洞与加密通道
运维·服务器·防火墙·acl·nat
LHX sir1 小时前
HubPort 和 SCADA / MES 是什么关系?是替代还是增强
网络·工业互联网·scada·mes
Zhang~Ling1 小时前
Linux多线程互斥锁:从现象到原理解析
linux·运维·网络
KaiwuDB1 小时前
KaiwuDB 运维实战 03:双副本仲裁节点部署与高可用实践
运维·时序数据库·raft·kaiwudb·数据库运维·双副本高可用·仲裁节点