重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
mysql CREATE FUNCTION HelloWorld4()
成都创新互联公司是一家专注于网站设计、成都做网站和服务器托管的网络公司,有着丰富的建站经验和案例。
- RETURNS VARCHAR(20)
- BEGIN
- RETURN 'Hello World!';
- END;
- //
Query OK, 0 rows affected (0.00 sec)
mysql select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! |
+---------------+
1 row in set (0.00 sec) ...展开mysql CREATE FUNCTION HelloWorld4()
- RETURNS VARCHAR(20)
- BEGIN
- RETURN 'Hello World!';
- END;
- //
Query OK, 0 rows affected (0.00 sec)
mysql select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! |
+---------------+
1 row in set (0.00 sec)
UPDATE
`表名`
SET
`参加工作`
=
(SELECT
DATE_ADD(Birthday,
INTERVAL
`WorkYear`
YEAR));
会把所有的
`参加工作时间`
列修改为
Birthday
+
WorkYear
DATE_ADD函数使用说明: DATE_ADD(date,
INTERVAL
expr
type);
第一个参数date,可以是date类型或者datetime类型;
第二个参数INTERVAL
expr
type;INTERVAL
是指明相加的间隔,
expr是表达式,间隔的值,可以为列名,如
`WorkYear`;type是指定那部分相加,如
YEAR,只相加YEAR部分,其它不变,可以为其它类型如:DAY_HOUR,MINUTE_SECOND
。
语法:Create function function_name(参数列表)returns返回值类型
函数体 函数名,应合法的标识符,不应与系统关键字冲突。
一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为当前数据库。
参数部分,由参数名和参数类型组成。
返回值类类型.注意,一定要有return返回值语句。
创建第一个函数:
mysql DROP FUNCTION IF EXISTS SP_FUNC_DBDH_ONE -- 删掉已存在函数 DELIMITER -- 定义分隔符,必须要有 ,本例为 可以为得数字符,例如: $$,%%,**
mysql CREATE FUNCTION SP_FUNC_DBDH_ONE( PARA_VAR varchar(30)) -- 多个参数用,分割 参数
的类型必须是mysql列存在的类型
- RETURNS VARCHAR(100) -- 指定返回值类型,如果你不确定返回
文本长度,可以使用text
- BEGIN
- DECLARE NAYIBU_FIR VARCHAR(30) DEFAULT 'THIS IS MY FIRST,'; -- 定义变量,设置默认值
- SET NAYIBU_FIR = concat(NAYIBU_FIR,PARA_VAR);
- RETURN NAYIBU_FIR; -- 返回值
- END $$
后面有你在前面定义的分割符号
Query OK, 0 rows affected (0.00 sec)
mysql DELIMITER
调用自定义函数,输出结果如下:
mysql SELECT SP_FUNC_DBDH_ONE('PROGRAM');
+------------------------------+
| SP_FUNC_DBDH_ONE('PROGRAM') |
+------------------------------+
| 'THIS IS MY FIRST, PROGRAM |
+------------------------------+
1 row in set (0.00 sec)
MySQL 自己不带有 to_char 这个函数的。
你要模仿 Oracle, 写一个 MySQL 的 TO_CHAR 函数?
这个恐怕有点麻烦。
因为 Oracle 的 TO_CHAR 是可以把 日期型的, 数值型的, 转换为 字符类型。
你这个MySQL 下的 to_char , 只要转换日期呢? 还是转换 数字?
mysql CREATE FUNCTION HelloWorld4()
- RETURNS VARCHAR(20)
- BEGIN
- RETURN 'Hello World!';
- END;
- //
Query OK, 0 rows affected (0.00 sec)
mysql select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! |
+---------------+
1 row in set (0.00 sec)
如果你会其它数据库的话, 那么看看那个 SQL 存储过程编写 参考手册 对你会有些帮助。
mysql SELECT
- DATE_ADD('2014-03-17', INTERVAL 2 MONTH) AS `第一步结果`,
- DATE_FORMAT(DATE_ADD('2014-03-17', INTERVAL 2 MONTH), '%Y%m') AS `最后结果`;
+------------+----------+
| 第一步结果 | 最后结果 |
+------------+----------+
| 2014-05-17 | 201405 |
+------------+----------+
1 row in set (0.00 sec)