博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
50.8. 函数
阅读量:6628 次
发布时间:2019-06-25

本文共 1281 字,大约阅读时间需要 4 分钟。

函数会返回数据,调用函数使用 select fun(),不能使用call调用,否则提示

mysql> call myfun();ERROR 1305 (42000): PROCEDURE test.myfun does not exist

下面做一个实验

CREATE TABLE `t` (	`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,	`n` INT(11) UNSIGNED NULL DEFAULT '0',	PRIMARY KEY (`id`))COLLATE='utf8_general_ci'ENGINE=InnoDBAUTO_INCREMENT=5;CREATE DEFINER=`neo`@`%` FUNCTION `myfun`()	RETURNS int(11)	LANGUAGE SQL	NOT DETERMINISTIC	READS SQL DATA	SQL SECURITY DEFINER	COMMENT ''BEGIN	INSERT INTO t (n) VALUES(rand()*100);	RETURN LAST_INSERT_ID();END
mysql> select myfun();+---------+| myfun() |+---------+|       9 |+---------+1 row in set, 2 warnings (0.07 sec)

50.8.1. TIMESTAMP TO ISO8601

USE `netkiller`;DROP function IF EXISTS `timestamp_to_iso8601`;DELIMITER $$USE `netkiller`$$CREATE DEFINER=`neo`@`db.netkiller.cn` FUNCTION `timestamp_to_iso8601`(dt timestamp) RETURNS varchar(24) CHARSET utf8BEGIN	RETURN DATE_FORMAT( CONVERT_TZ(dt, @@session.time_zone, '+00:00')  ,'%Y-%m-%dT%T.000Z');     END$$DELIMITER ;

调用函数

mysql> select timestamp_to_iso8601(current_timestamp()) as iso8601;+--------------------------+| iso8601                  |+--------------------------+| 2017-12-07T07:21:22.000Z |+--------------------------+1 row in set (0.00 sec)

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

你可能感兴趣的文章
JVM Debugger Memory View for IntelliJ IDEA
查看>>
LINUX下GDB反汇编和调试
查看>>
golang fmt格式“占位符”
查看>>
SpringMVC包括哪些组件
查看>>
现代前端开发路线图:从零开始,一步步成为前端工程师
查看>>
Oracle绝对值函数
查看>>
mysql 的mgr集群
查看>>
html5播放mp4视频代码
查看>>
032_nginx配置文件安全下载
查看>>
Linux下tomcat修改成的80端口无法访问
查看>>
redis实现对账(集合比较)功能
查看>>
为了好好看球,学霸们用深度学习重建整个比赛3D全息图
查看>>
浅谈持续集成
查看>>
【ZH奶酪】如何用textgenrnn处理中文
查看>>
CentOS双机中Docker下安装Mysql并配置互为主从模式
查看>>
OkHttp3源码详解(六) Okhttp任务队列工作原理
查看>>
这样做,轻松在Word中使用MathType
查看>>
VS Code非英语版本连接TFS错误解决方案
查看>>
angular5中使用jsonp请求页面
查看>>
sql in not in 案例用 exists not exists 代替
查看>>