Mysql系列--6、内置函数
目录
一、日期函数
1.1概览
1.2命令演示
二、字符串函数
2.1概览
2.2命令演示
三、数学函数
3.1概览
3.2代码演示
四、其他函数
一、日期函数
1.1概览
1.2命令演示
--获取当前日期
a.select current_date();--换取当前时间
b.select current_time();--当前时间戳,mysql自动转化
c.select current_timestamp();--当前日期加时间
d.select now();--获取传入时间的日期/时间部分
e.select date/time('date',now(),current_timestamp,...);
'date'有具体格式:'year-month-day hour-minute-second'--指定时间加时间
f.select date_add(('date',now(),current_timestamp,...),interval d_value_type);
d_value_type带单位的要加的时间,如:10 day,20 minute, 45 second......--减时间
g.select date_sub(('date',now(),current_timestamp,...),interval d_value_type);--计算两时间的相差
h.select datediff('date1','date 2');
前 - 后,'date'可用相关时间函数代替
二、字符串函数
2.1概览
2.2命令演示
--获取数据的格式
a.select charset('str');
select charset(表中属性)from 表名;--数据拼接
b.select concat('str1','str2','str3');
select concat(属性1,'对属性的描述/格式化标点...',属性2,...) from 表名;--求数据占用的字节数,不同于字符数,mysql字节与字符的转化与编码格式有关,如utf8下一字符为三字节
c.select length(属性) from 表名;
select length('str');--返回substr在str中出现的位置,str首位为1,若不存在函数返回0
d.select instr(str,substr);--数据大小写转化
e.ucase(str) 大写
lcase(str) 小写--从左向右在str中截取len个字符
f.select left(str,len);
--从右向左
select right(str,len);--字符替换
g.select replace([属性],'str1','str2') [from 表名]; str1替换为str2--截取字符串
h.select substring([属性],x,y) [from 表名】; 从x处截取y个字符
三、数学函数
3.1概览
3.2代码演示
数学函数与c/c++函数使用相似不过多演示
四、其他函数
--user() 查询当前用户
user() 查询当前用户--md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串(加密操作)
select md5('admin')+----------------------------------+
| md5('admin') |
+----------------------------------+
| 21232f297a57a5a743894a0e4a801fc3 |
+----------------------------------+--database()显示当前正在使用的数据库
select database();--password()函数,MySQL数据库使用该函数对用户加密(靠谱)
select password('root');+-------------------------------------------+
| password('root') |
+-------------------------------------------+
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+--三目表达式,ifnull(val1, val2) 如果val1为null,返回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)