
💡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();
