创建自定义函数语法为
create function 函数名(参数列表)
returns 返回函数类型
函数体
以上语句解释如下
函数名:应该合法的标识符,并且不应该与已有的关键字冲突,一个函数应该属于某数据库,可以使用db_name.function_name的形式执行当前函数所属数据库,否则默认为当前数据库
参数列表:可以有一个或者多个函数参数,甚至是没有参数也是可以的,对于每个参数,由参数名和参数类型组成。
returns:指明返回值类类型
函数体:自定义函数的函数体由多条可用的MySQL语句,流程控制,变量声明等语句构成。需要指明的是函数体中一定要含有return返回语句。
删除自定义函数的语法为:
Drop function if exits function_name;
下面我们来看一个例子来说明一下
create FUNCTION ry.myFormat(mydate datetime) --其中mydate是参数名,datetime表示参数类型,说明mydate是一个datetime类型的参数。注意一下这里是参数名在前,参数类型在后喔!
RETURNS VARCHAR(255) --指明函数的返回类型为varchar(255)
BEGIN --函数体的开头部分
DECLARE temp VARCHAR(255) DEFAULT ''; --定义temp为varchar类型的变量
SET temp = DATE_FORMAT(mydate,'%y年%m月%d日%h时%i分%s秒'); --给temp赋值(其中用了mysql自带的函数DATE_FORMAT())
RETURN temp; --函数的返回值
END; --函数体结束
当我们执行完上面代码后可以用下面的sql语句调用一下这个函数来爽一下
SELECT myFormat(NOW()) AS time,NOW() AS time1;
运行结果如下