《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();
相关推荐
茶栀(*´I`*)2 分钟前
SQL 性能分析:从慢查询日志到执行计划的完整定位方法
数据库·sql
艺杯羹32 分钟前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
陈希12333 分钟前
负载均衡与高可用:LVS、HAProxy、Keepalived 实战
运维·负载均衡·lvs
一条破秋裤1 小时前
【1114】【并发控制】【笔记】
linux
code2cat1 小时前
【随笔】MCP工具重试:任务已经创建,响应丢了怎么办
数据库·mcp
2035去旅行3 小时前
ADB的底层原理
linux·adb·嵌入式·arm·soc
武子康3 小时前
单卡 A6000 跑 Qwen-Drive:怎样留下可比较的第一条基线?
linux·人工智能·深度学习
女神下凡3 小时前
芯参谋(107):杰理AC_中科蓝讯_开发指南
linux·服务器·网络·单片机·嵌入式硬件
落羽的落羽3 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
wuyk5553 小时前
Spider-第10讲-SQLite持久化与去重
数据库·爬虫·sqlite