《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();
相关推荐
wtblszn4 小时前
自动化包装生产线设备可视化管理方案
运维·自动化
龙腾AI白云4 小时前
AI检索增强生成(RAG):解决大模型幻觉的核心落地技术
数据库·人工智能·机器学习·知识图谱
一 乐4 小时前
动漫书销售商城|基于springboot + vue动漫书销售商城(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计
zzj_2626105 小时前
MySQL常用操作
数据库·mysql
其实防守也摸鱼5 小时前
Fastjson 反序列化漏洞(JNDI注入)
android·数据库·安全·oracle·自动化·fastjson·反序列化
haerapi5 小时前
把 PostgreSQL 复制巡检做成可审计闭环:确定性采集、阈值判定与受控模型归纳
数据库·postgresql
跨境小彭5 小时前
Temu拉美站点铺货实操复盘:手动复制痛点与批量自动化解决方案
服务器·人工智能·搜索引擎·自动化·temu电商运营
yolo_guo5 小时前
调试mysql延迟与libevent回调实际发送回复时机问题
c++·mysql·libevent
心之语歌5 小时前
Tkinter 画布基本梳理
运维·服务器·python
旺仔学长 哈哈6 小时前
springboot钓鱼爱好者交流平台APP设计与实现
java·spring boot·mysql·充电桩管理系统