获得年月日:
获得时分秒:
将前二者结合:
获得时间戳:
相同作用的函数还有now():
date(datetime),datetime可以是各种日期,也可以是上述的各类函数,最终得到的是所述内容中的日期部分。
常量
各类函数:
在日期的基础上加日期:
interval后面的数值单位可以是:year、month、day。
date也可以是函数的返回值
在日期的基础上减日期:
interval后面的数值单位可以是:year、month、day。
date也可以是函数的返回值
l两个日期的差,即date1-date2,单位是天。
当然,date一样可以是函数的返回值
案例-1:
create table tmp(
id int primary key auto_increment,
birthday date
);
insert into tmp(birthday) values(current_date());
insert into tmp(birthday) values(date(current_timestamp()));
案例-2:
create table msg (
id int primary key auto_increment,
content varchar(30) not null,
sendtime datetime
);
insert into msg(content,sendtime) values('像风一样', now());
insert into msg(content,sendtime) values('致未来的我', now());
有两种方式去查询,即通过date_add()比较,或者通过date_sub比较。但都是一个道理。
select * from msg where date_add(sendtime, interval 2 minute) > now();
或者:
select * from msg where date_sub(now(), interval 2 minute) < sendtime;
获取emp表的ename列的字符集
连接字符串
判断substring是否出现在string中,若找到,则返回匹配的起始位置。找不到则返回0
小写转大写
大写转小写
从string2的左边起提取length个字符
也有right,即从string2的右边起提取length个字符,就不一一演示了。
求字符串长度
比较string1与string2大小
ltrim(string) :去除左空格
rtrim(string): 去除右空格
trim(string):去除字符串的左右空格。
其余的函数就通过下面的具体样例演示:
length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)
这种改变是在select时的改变,其并不会改变数据库的数据,仅仅是显示时的替换。
先显示
再拼接
select abs(-100.2);
select bin(100);
select hex(100);
例如:将100从10进制转换成2进制
select conv(100, 10, 2);
select ceiling(100.5);
select floor(23.7);
比如将3.1415926保留两位小数:
select format(3.1415926, 2);
select rand();
select mod(10, 3);
ps:关于负数取模,这里不演示。
以上的函数都可以嵌套,即任意一个函数的返回值可以充当另一个函数的参数,如果这个函数存在参数,并且类型满足的话。
select user();
select md5('admin');
产生的子串是等长的,这也就意味着,在select按照密码匹配的时候,就需要根据md5(‘密码’)映射出对应的32位字符,才可以匹配成功。
select database();
select password('123');
相比md5,此函数更普遍受用。
扩展:
若数据库执行语句字段包含password字段,则我们在上翻下翻时就查不到历史对应的语句。