《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();
相关推荐
爱和冰阔落1 分钟前
【Linux】线程安全进阶:单例模式、可重入函数与死锁排查
linux·运维·安全·单例模式
dk_tjy22 分钟前
迪康网络运维故障自愈的自动化闭环技术路径分析
运维·网络·自动化
先知后行。25 分钟前
pimpl
linux
吉普赛的歌40 分钟前
如何设置服务器固定时间点自动重启一次
运维·服务器
泡海椒1 小时前
JQuick-SQL 与关系型数据库集成:应用层读取后注册查询
数据库·sql
Carol06301 小时前
上肢及肩肘关节
java·服务器·数据库
帷幕落秋1 小时前
SSH远程管理服务
运维·ssh
程序员塔塔喵1 小时前
【MySQL篇|第二篇】慢SQL及其优化手段
sql·mysql·慢sql优化
鸽芷咕1 小时前
数据孤岛怎么拆?金仓KFS数据集成软件从原理到落地
数据库
一世繁华行1 小时前
CAPL浏览器(翻译自官方文档)
运维·服务器·数据库