《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 分钟前
数据分析agent(十三_3):docker mysql容器镜像服务的异常错误
mysql·docker·容器
longerxin202020 分钟前
nano编辑器插入、编辑完整操作教程(Linux日志/配置专用)
linux·运维·编辑器
muddjsv1 小时前
SQLite数据库文件机制详解:journal、wal、shm文件作用与备份避坑
数据库·sqlite
cesium vue1 小时前
nginx 流媒体配置
运维·nginx
木心术11 小时前
GitHub Actions自动化运维实战:从CI/CD到全链路DevOps
运维·自动化·github
糯米导航1 小时前
实践教程|搭建电商 AI 无限画布,实现百款商品主图自动化批量生成
运维·人工智能·自动化
朴马丁2 小时前
从制造到智造:PLM如何赋能企业研发创新
大数据·运维·人工智能·食品行业·流程行业plm·化工新材料行业·新能源材料行业
爱小黄2 小时前
使用docker搭建集群-使用 Docker 搭建 KingbaseES 集群
运维·docker·容器
吴声子夜歌2 小时前
MongoDB 4.2——应用程序设计
数据库·mongodb
数字新视界2 小时前
动环监控可视化在数据中心管理中的应用与实践解析
数据库·物联网·解决方案·动环监控·大榕树