目录
- 1.时间函数
- 2.字符串函数
- 3.数学函数
- 4.其他函数
1.时间函数
函数名称 |
描述 |
current_date() |
当前日期 |
current_time() |
当前时间 |
current_timestamp() |
当前时间戳 |
date(datetime) |
返回datetime参数的日期部分 |
date_add(date,interval d_value_type) |
在date中添加日期/时间,interval后的数值单位可以是:year minute second day |
date_sub(date,interval d_value_type) |
在date中减去日期/时间,interval后的数值单位可以是:year minute second day |
datediff(date1,date2) |
两个日期的差,单位是天 |
now() |
当前日期时间 |
mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2025-06-24 |
+----------------+
1 row in set (0.00 sec)
mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 14:50:45 |
+----------------+
1 row in set (0.00 sec)
mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2025-06-24 14:51:15 |
+---------------------+
1 row in set (0.00 sec)
mysql> select date(current_timestamp());
+---------------------------+
| date(current_timestamp()) |
+---------------------------+
| 2025-06-24 |
+---------------------------+
1 row in set (0.00 sec)
mysql> select date_add('2004-02-20',interval 5 day);
+---------------------------------------+
| date_add('2004-02-20',interval 5 day) |
+---------------------------------------+
| 2004-02-25 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select date_sub('2025=06-24',interval 10 day);
+----------------------------------------+
| date_sub('2025=06-24',interval 10 day) |
+----------------------------------------+
| 2025-06-14 |
+----------------------------------------+
1 row in set, 1 warning (0.00 sec)
mysql> select datediff(current_date(),'2004-02-20');
+---------------------------------------+
| datediff(current_date(),'2004-02-20') |
+---------------------------------------+
| 7795 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2025-06-24 14:55:32 |
+---------------------+
1 row in set (0.00 sec)
mysql> create table msg(
-> id int primary key auto_increment,
-> content varchar(30) not null,
-> sendtime datetime
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> desc msg;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| content | varchar(30) | NO | | NULL | |
| sendtime | datetime | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
mysql> insert into msg(content,sendtime) values('人生自古谁无死',now());
Query OK, 1 row affected (0.00 sec)
mysql> insert into msg(content,sendtime) values('留取丹心照汗青',now());
Query OK, 1 row affected (0.00 sec)
mysql> select *from msg;
+----+-----------------------+---------------------+
| id | content | sendtime |
+----+-----------------------+---------------------+
| 1 | 人生自古谁无死 | 2025-06-24 14:58:31 |
| 2 | 留取丹心照汗青 | 2025-06-24 14:58:46 |
+----+-----------------------+---------------------+
2 rows in set (0.00 sec)
mysql> select content,date(sendtime) from msg;
+-----------------------+----------------+
| content | date(sendtime) |
+-----------------------+----------------+
| 人生自古谁无死 | 2025-06-24 |
| 留取丹心照汗青 | 2025-06-24 |
+-----------------------+----------------+
2 rows in set (0.00 sec)
mysql> select * from msg where date_add(sendtime,interval 5 minute)>now();
+----+-----------------------+---------------------+
| id | content | sendtime |
+----+-----------------------+---------------------+
| 1 | 人生自古谁无死 | 2025-06-24 14:58:31 |
| 2 | 留取丹心照汗青 | 2025-06-24 14:58:46 |
+----+-----------------------+---------------------+
2 rows in set (0.00 sec)
2.字符串函数
函数名称 |
描述 |
charset(str) |
返回字符串字符集 |
concat(string2 [,…]) |
连接字符串 |
instr(string,substring) |
返回substring在string中出现的位置,没有返回0 |
ucase(string2) |
转换成大写 |
lcase(string2) |
转换成小写 |
left(string2,length) |
从string2中的左边起取length个字符 |
length(string) |
string的长度 |
replace(str,search_str,replace_str) |
在str中用replace_str替换search_str |
strcmp(string1,string2) |
逐字符比较两字符串大小 |
substring(str,postion [,length]) |
从str的postion位置开始,取length个字符 |
ltrim(string) rtrim(string) trim(string) |
去除前空格/后空格 |
mysql> select charset(ename) from emp;
+----------------+
| charset(ename) |
+----------------+
| utf8mb3 |
| utf8mb3 |
| utf8mb3 |
| utf8mb3 |
+----------------+
14 rows in set (0.00 sec)
mysql> select *from exam_result;
+----+-----------+---------+------+---------+
| id | name | chinese | math | english |
+----+-----------+---------+------+---------+
| 1 | 唐三藏 | 134 | 98 | 56 |
| 3 | 猪悟能 | 176 | 98 | 90 |
| 4 | 曹孟德 | 140 | 90 | 67 |
| 5 | 刘玄德 | 110 | 115 | 45 |
| 6 | 孙权 | 140 | 73 | 78 |
| 7 | 宋公明 | 150 | 95 | 30 |
+----+-----------+---------+------+---------+
6 rows in set (0.00 sec)
mysql> select concat('姓名:',name,',总分:',english+math+chinese ,',.语文:',chinese,,.数学:',math,,.英语:',eglish) as mag from exam_result;
+-------------------------------------------------------------------------+
| mag |
+-------------------------------------------------------------------------+
| 姓名:唐三藏,总分:288,语文:134,数学:98,英语:56 |
| 姓名:猪悟能,总分:364,语文:176,数学:98,英语:90 |
| 姓名:曹孟德,总分:297,语文:140,数学:90,英语:67 |
| 姓名:刘玄德,总分:270,语文:110,数学:115,英语:45 |
| 姓名:孙权,总分:291,语文:140,数学:73,英语:78 |
| 姓名:宋公明,总分:275,语文:150,数学:95,英语:30 |
+-------------------------------------------------------------------------+
6 rows in set (0.00 sec)
mysql> select instr('abcd1234ABCD','1234');
+------------------------------+
| instr('abcd1234ABCD','1234') |
+------------------------------+
| 5 |
+------------------------------+
1 row in set (0.00 sec)
mysql> select ucase('abcd1234ABCD');
+-----------------------+
| ucase('abcd1234ABCD') |
+-----------------------+
| ABCD1234ABCD |
+-----------------------+
1 row in set (0.00 sec)
mysql> select lcase('abcd1234ABCD');
+-----------------------+
| lcase('abcd1234ABCD') |
+-----------------------+
| abcd1234abcd |
+-----------------------+
1 row in set (0.00 sec)
mysql> select left('abcdefghi',4);
+---------------------+
| left('abcdefghi',4) |
+---------------------+
| abcd |
+---------------------+
1 row in set (0.00 sec)
mysql> select right('abcdefghi',4);
+----------------------+
| right('abcdefghi',4) |
+----------------------+
| fghi |
+----------------------+
1 row in set (0.00 sec)
mysql> select length('abcdef');
+------------------+
| length('abcdef') |
+------------------+
| 6 |
+------------------+
1 row in set (0.01 sec)
mysql> select * from emp;
+--------+--------+-----------+------+---------------------+---------+---------+--------+
| empno | ename | job | mgr | hiredate | sal | comm | deptno |
+--------+--------+-----------+------+---------------------+---------+---------+--------+
| 007369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 |
| 007499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600.00 | 300.00 | 30 |
| 007521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.00 | 500.00 | 30 |
| 007566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 |
| 007654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 | 30 |
| 007698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850.00 | NULL | 30 |
| 007782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450.00 | NULL | 10 |
| 007788 | SCOTT | ANALYST | 7566 | 1987-04-19 00:00:00 | 3000.00 | NULL | 20 |
| 007839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL | 10 |
| 007844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.00 | 0.00 | 30 |
| 007876 | ADAMS | CLERK | 7788 | 1987-05-23 00:00:00 | 1100.00 | NULL | 20 |
| 007900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 |
| 007902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | NULL | 20 |
| 007934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300.00 | NULL | 10 |
+--------+--------+-----------+------+---------------------+---------+---------+--------+
14 rows in set (0.00 sec)
mysql> select replace(ename,'S','上海') ,ename from emp;
+-----------------------------+--------+
| replace(ename,'S','上海') | ename |
+-----------------------------+--------+
| 上海MITH | SMITH |
| ALLEN | ALLEN |
| WARD | WARD |
| JONE上海 | JONES |
| MARTIN | MARTIN |
| BLAKE | BLAKE |
| CLARK | CLARK |
| 上海COTT | SCOTT |
| KING | KING |
| TURNER | TURNER |
| ADAM上海 | ADAMS |
| JAME上海 | JAMES |
| FORD | FORD |
| MILLER | MILLER |
+-----------------------------+--------+
14 rows in set (0.00 sec)
mysql> select strcmp('abd','abc');
+---------------------+
| strcmp('abd','abc') |
+---------------------+
| 1 |
+---------------------+
1 row in set (0.00 sec)
mysql> select substring(ename,2,2),ename from emp;
+----------------------+--------+
| substring(ename,2,2) | ename |
+----------------------+--------+
| MI | SMITH |
| LL | ALLEN |
| AR | WARD |
| ON | JONES |
| AR | MARTIN |
| LA | BLAKE |
| LA | CLARK |
| CO | SCOTT |
| IN | KING |
| UR | TURNER |
| DA | ADAMS |
| AM | JAMES |
| OR | FORD |
| IL | MILLER |
+----------------------+--------+
14 rows in set (0.00 sec)
mysql> select trim(' 你好 ') as msg;
+--------+
| msg |
+--------+
| 你好 |
+--------+
1 row in set (0.00 sec)
mysql> select ltrim(' 你好 ') as msg;
+-------------------+
| msg |
+-------------------+
| 你好 |
+-------------------+
1 row in set (0.00 sec)
mysql> select rtrim(' 你好 ') as msg;
+--------------+
| msg |
+--------------+
| 你好 |
+--------------+
1 row in set (0.00 sec)
mysql> select ename,concat(lcase(substring(ename,1,1)),substring(ename,2)) as ename from emp;
+--------+--------+
| ename | ename |
+--------+--------+
| SMITH | sMITH |
| ALLEN | aLLEN |
| WARD | wARD |
| JONES | jONES |
| MARTIN | mARTIN |
| BLAKE | bLAKE |
| CLARK | cLARK |
| SCOTT | sCOTT |
| KING | kING |
| TURNER | tURNER |
| ADAMS | aDAMS |
| JAMES | jAMES |
| FORD | fORD |
| MILLER | mILLER |
+--------+--------+
14 rows in set (0.00 sec)
3.数学函数
函数名称 |
描述 |
abs(number) |
绝对值函数 |
bin(number) |
十进制转二进制 |
hex(number) |
转换成十六进制 |
conv(number,from_base,to_base) |
进制转换 |
ceiling(number) |
向上取整 |
floor(number) |
向下取整 |
format(number,decimal_places) |
格式化,保留小数位数 |
rand() |
生成随机数 |
mod(number,denominator) |
取模,求余 |
mysql> select abs(12);
+---------+
| abs(12) |
+---------+
| 12 |
+---------+
1 row in set (0.00 sec)
mysql> select abs(-12);
+----------+
| abs(-12) |
+----------+
| 12 |
+----------+
1 row in set (0.00 sec)
mysql> select bin(10);
+---------+
| bin(10) |
+---------+
| 1010 |
+---------+
1 row in set (0.00 sec)
mysql> select hex(10);
+---------+
| hex(10) |
+---------+
| A |
+---------+
1 row in set (0.00 sec)
mysql> select conv(10,10,16);
+----------------+
| conv(10,10,16) |
+----------------+
| A |
+----------------+
1 row in set (0.00 sec)
mysql> select ceiling(4.1);
+--------------+
| ceiling(4.1) |
+--------------+
| 5 |
+--------------+
1 row in set (0.00 sec)
mysql> select ceiling(-4.3);
+---------------+
| ceiling(-4.3) |
+---------------+
| -4 |
+---------------+
1 row in set (0.00 sec)
mysql> select floor(4.1);
+------------+
| floor(4.1) |
+------------+
| 4 |
+------------+
1 row in set (0.00 sec)
mysql> select floor(-4.3);
+-------------+
| floor(-4.3) |
+-------------+
| -5 |
+-------------+
1 row in set (0.00 sec)
mysql> select format(3.1415926,2);
+---------------------+
| format(3.1415926,2) |
+---------------------+
| 3.14 |
+---------------------+
1 row in set (0.00 sec)
mysql> select rand();
+------------------+
| rand() |
+------------------+
| 0.74572997237158 |
+------------------+
1 row in set (0.00 sec)
mysql> select mod(10,3);
+-----------+
| mod(10,3) |
+-----------+
| 1 |
+-----------+
1 row in set (0.00 sec)
4.其他函数
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql> select md5('123456');
+----------------------------------+
| md5('123456') |
+----------------------------------+
| e10adc3949ba59abbe56e057f20f883e |
+----------------------------------+
1 row in set (0.00 sec)
select ifnull('abc', '123');
+----------------------+
| ifnull('abc', '123') |
+----------------------+
| abc |
+----------------------+
1 row in set (0.01 sec)
select ifnull(null, '123');
+---------------------+
| ifnull(null, '123') |
+---------------------+
| 123 |
+---------------------+
1 row in set (0.00 sec)