MySQL内置函数

1.日期函数

MySQL内置函数_第1张图片

获得年月日:
select current_date();
+----------------+
| current_date() |
+----------------+
| 2017 - 11 - 19 |
+----------------+

获得时分秒:

select current_time();
+----------------+
| current_time() |
+----------------+
| 13 :51:21 |
+----------------+

获得时间戳:

lect current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2017 - 11 - 19 13 :51:48 |
+---------------------+

在日期的基础上加日期:

select date_add( '2017-10-28' , interval 10 day);
+-----------------------------------------+
| date_add( '2017-10-28' , interval 10 day) |
+-----------------------------------------+
| 2017 - 11 - 07                                 |
+-----------------------------------------+

在日期的基础上减去时间:

select date_sub( '2017-10-1' , interval 2 day);
+---------------------------------------+
| date_sub( '2017-10-1' , interval 2 day) |
+---------------------------------------+
| 2017 - 09 - 29                              |
+---------------------------------------+

计算两个日期之间相差多少天:

select datediff( '2017-10-10' , '2016-9-1' );
+------------------------------------+
| datediff( '2017-10-10' , '2016-9-1' ) |
+------------------------------------+
|                                       404 |
+------------------------------------+
案例 -1
创建一张表,记录生日
create table tmp(
id int primary key auto_increment,
birthday date
);

添加当前日期:

insert into tmp(birthday) values(current_date());  

mysql> select * from tmp;
+----+------------+
| id | birthday |
+----+------------+
| 1 | 2017 - 11 - 19 |
+----+------------+
案例 -2
创建一个留言表
mysql> create table msg (
id int primary key auto_increment,
content varchar ( 30 ) not null ,
sendtime datetime
);

插入数据

mysql> insert into msg(content,sendtime) values ( 'hello1' , now());
mysql> insert into msg(content,sendtime) values ( 'hello2' , now());
mysql> select * from msg;
+----+---------+---------------------+
| id | content | sendtime |
+----+---------+---------------------+
| 1 | hello1 | 2017 - 11 - 19 14 :12:20 |
| 2 | hello2 | 2017 - 11 - 19 14 :13:21 |
+----+---------+---------------------+

显示所有留言信息,发布日期只显示日期,不用显示时间  

select content,date(sendtime) from msg;  

请查询在2分钟内发布的帖子

select * from msg where date_add(sendtime, interval 2 minute) > now();
理解:
------------------------------|-----------|-------------|------------------>
                                初始时间 now() 初始时间+ 2 min  

2.字符串函数

charset(str) 返回字符串字符集
const(string2[,...]) 连接字符串
instr(string,substring) 返回substring在string中出现的位置,没有返回0
ucase(string2) 转换成大写
lcase(string2) 转换成小写
left(string2,length) 从string2中的左边起取length个字符
right(string2,length) 从string2中的右边起取length个字符
length(string) string的长度
replace(str,search_str,replace_str) 在str中用replace_str替换search_str
strcmp(string1,string2) 逐字符比较两字符串大小
substring(str,position [,length]) 从str的position开始,取length个字符
ltrim(string)  rtrim(string) trim(string) 去除前空格或后空格

3.数学函数

MySQL内置函数_第2张图片

4.其它函数

user() 查询当前用户
select user();

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串

select md5('admin')  

+----------------------------------+
| md5( 'admin' ) |
+----------------------------------+
| 21232 f297a57a5a743894a0e4a801fc3 |
+----------------------------------+

database()显示当前正在使用的数据库

select database();  

password()函数,MySQL数据库使用该函数对用户加密

select password( 'root' );
+-------------------------------------------+
| password( 'root' ) |
+-------------------------------------------+
| * 81 F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+

ifnullval1 val2) 如果val1null,返回val2,否则返回val1的值

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)

你可能感兴趣的:(mysql,数据库)