MySQL内置函数

发布时间:2024年01月17日

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.数学函数

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)
文章来源:https://blog.csdn.net/wmh_1234567/article/details/135656182
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。