mysql中没有内置函数_MYSQL——mysql中内置函数

mysql中内置函数

8f900a89c6347c561fdf2122f13be562.pngMySQL中内置函数

需要掌握函数:date_format

#1 基本使用

mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');

-> 'Sunday October 2009'

mysql> SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');

-> '22:23:00'

mysql> SELECT DATE_FORMAT('1900-10-04 22:23:00',

-> '%D %y %a %d %m %b %j');

-> '4th 00 Thu 04 10 Oct 277'

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',

-> '%H %k %I %r %T %S %w');

-> '22 22 10 10:23:00 PM 22:23:00 00 6'

mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');

-> '1998 52'

mysql> SELECT DATE_FORMAT('2006-06-00', '%d');

-> '00'

#2 准备表和记录

CREATE TABLE blog (

id INT PRIMARY KEY auto_increment,

NAME CHAR (32),

sub_time datetime

);

INSERT INTO blog (NAME, sub_time)

VALUES

('第1篇','2015-03-01 11:31:21'),

('第2篇','2015-03-11 16:31:21'),

('第3篇','2016-07-01 10:21:31'),

('第4篇','2016-07-22 09:23:21'),

('第5篇','2016-07-23 10:11:11'),

('第6篇','2016-07-25 11:21:31'),

('第7篇','2017-03-01 15:33:21'),

('第8篇','2017-03-01 17:32:21'),

('第9篇','2017-03-01 18:31:21');

#3. 提取sub_time字段的值,按照格式后的结果即"年月"来分组

SELECT DATE_FORMAT(sub_time,'%Y-%m'),COUNT(1) FROM blog GROUP BY DATE_FORMAT(sub_time,'%Y-%m');

#结果

+-------------------------------+----------+

| DATE_FORMAT(sub_time,'%Y-%m') | COUNT(1) |

+-------------------------------+----------+

| 2015-03 | 2 |

| 2016-07 | 4 |

| 2017-03 | 3 |

+-------------------------------+----------+

3 rows in set (0.00 sec)

自定义函数

ps:

函数中不要写sql语句(否则会报错),函数仅仅只是一个功能,是一个在sql中被应用的功能

若要想在begin...end...中写sql,请用存储过程

#1

delimiter //

create function f1(

i1 int,

i2 int)

returns int

BEGIN

declare num int;

set num = i1 + i2;

return(num);

END //

delimiter ;

#2

delimiter //

create function f5(

i int

)

returns int

begin

declare res int default 0;

if i = 10 then

set res=100;

elseif i = 20 then

set res=200;

elseif i = 30 then

set res=300;

else

set res=400;

end if;

return res;

end //

delimiter ;

删除函数

drop function func_name;

执行函数

# 获取返回值

select UPPER('egon') into @res;

SELECT @res;

# 在查询中使用

select f1(11,nid) ,name from tb2;

你可能感兴趣的:(mysql中没有内置函数)