mysql函数

一.字符串函数

1.拼接字符串concat(str1,str2...)
select concat('hello',',','word','!'); 

2.包含字符个数length(str)
select length('hello,word!');

3.截取字符串
--left(str,len)返回字符串str的左端len个字符
--right(str,len)返回字符串str的右端len个字符
--substring(str,pos,len)返回字符串str的位置pos起len个字符
select substring('hello,word!',7,4);

4.去除空格
--ltrim(str)返回删除了左空格的字符串str
--rtrim(str)返回删除了右空格的字符串str
select rtrim('hello ');

5.大小写转换
--lower(str) 转化为小写
--upper(str) 转化为大写
select lower('HeLlo');

二.数学函数

1.求四舍五入值round(n,d),n表示原数,d表示小数位置,默认为0
select round(1.8);

2.求x的y次幂pow(x,y)
select pow(2,3);

3.获取圆周率PI()
select PI();

4.随机数rand(),值为0-1.0的浮点数
select rand();

三.日期时间函数

1.当前日期current_date()
select current_date();

2.当前时间current_time()
select current_time();

3.当前日期时间now()
select now();

4.日期格式化date_format(date,format)
参数format:
%Y 获取年,返回完整年份
%y 获取年,返回简写年份
%m 获取月,返回月份
%d 获取日,返回天值
%H 获取时,返回24进制的小时数
%h 获取时,返回12进制的小时数
%i 获取分,返回分钟数
%s 获取秒,返回秒数
select date_format('2020-12-12 12:12:12','%Y年%m月%d日 %H时%i分%s秒');

5.选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒
select date('2020-12-12 12:12:12');
select time('2020-12-12 12:12:12');
select year('2020-12-12 12:12:12');
select quarter('2020-12-12 12:12:12');
select month('2020-12-12 12:12:12');
select week('2020-12-12 12:12:12');
select day('2020-12-12 12:12:12');
select hour('2020-12-12 12:12:12');
select minute('2020-12-12 12:12:12');
select second('2020-12-12 12:12:12');
select microsecond('2020-12-12 12:12:12');

6.返回月份中的最后一天last_day()
select last_day('2020-02-01');

当前月份中有多少天
select now(), day(last_day(now())) as days;

7.日期时间计算date_add()
select date_add(now(), interval 1 day);
select date_add(now(), interval 1 hour);
select date_add(now(), interval 1 minute);
select date_add(now(), interval 1 second);
select date_add(now(), interval 1 microsecond);
select date_add(now(), interval 1 week);
select date_add(now(), interval 1 month);
select date_add(now(), interval 1 quarter);
select date_add(now(), interval 1 year);

8.日期、时间相减:datediff(date1,date2), timediff(time1,time2)
--datediff(date1,date2):两个日期相减 date1 - date2,返回天数。
select datediff('2020-08-01', '2020-08-08'); -- -7
--timediff(time1,time2):两个日期相减 time1 - time2,返回 time 差值。
select timediff('08:08:08', '00:00:00'); -- 08:08:08

9.字符串转换为日期str_to_date(str, format)
select str_to_date('08.09.2020 08:09:30', '%m.%d.%Y %h:%i:%s'); --2020-08-09 08:09:30

10.日期,时间转换成字符串date_format(),time_format()
select date_format('2020-08-08 22:23:01', '%Y-%m-%d %H:%i:%s');

四.流程控制
case语法:等值判断,当值等于某个比较值的时候,对应的结果会被返回;如果所有的比较值都不相等则返回else的结果;如果没有else并且所有比较值都不相等则返回null
case 值 when 比较值1 then 结果1 when 比较值2 then 结果2 ... else 结果 end
select case 1 when 1 then '男' when 2 then '女' else '其它' end as result;

五.自定义函数

1.语法
delimiter $$
create function 函数名称(参数列表) returns 返回类型
begin
sql语句
end
$$
delimiter ;

说明:delimiter用于设置分割符,默认为分号
在“sql语句”部分编写的语句需要以分号结尾,此时回车会直接执行,所以要创建存储过程前需
要指定其它符号作为分割符,此处使用//,也可以使用其它字符

2.创建函数my_trim,用于删除字符串左右两侧的空格:
delimiter $$
create function my_trim(str varchar(100)) returns varchar(100)
begin
return ltrim(rtrim(str));
end
$$
delimiter ;

3.使用自定义函数
select my_trim('  hello ');

 

你可能感兴趣的:(mysql)