编程论坛's Archiver

system32 发表于 2007-11-17 15:29

mysql怎么写一个带输入输出参数的用户自定义函数

<P>功能就如:<BR>use studentRegisterManager</P>
<P>go<BR>create function differentTime(section_id varchar(10),currenttime datetime)<BR> returns int<BR>   begin<BR>      declare different int,<BR>      declare ttime datetime,<BR>      <BR>      set ttime = (select section_set_time from [section] where <a href="mailto:section_id=@section_id" target="_blank" >section_id=@section_id</A>)</P>
<P>      set different=DATEDIFF( d, @time,@currenttime)<BR>      <BR>      return different<BR>   end<BR>一样</P>

purana 发表于 2007-11-17 17:06

<P>这个函数初步看了一下...<BR>是错误的.</P>

system32 发表于 2007-11-17 17:40

回复:(purana)这个函数初步看了一下...是错误的.

<P>     我知道。我改的时候,不小心就把改动的传上来了,<BR>use studentRegisterManager<BR>go<BR>create function differentTime(@section_id varchar(10),@currenttime datetime)<BR> returns int<BR> as<BR>   begin<BR>      declare @different int <BR>      declare @time datetime<BR>      <BR>      set @time = (select section_set_time from [section] where <a href="mailto:section_id=@section_id" target="_blank" >section_id=@section_id</A>)</P>
<P>      set @different=DATEDIFF( d, @time,@currenttime)<BR>      <BR>      return @different<BR>   end<BR>这个对的了,能给我一个MYSQL的版本吗??</P>

purana 发表于 2007-11-17 18:15

<P>delimiter $$<BR>drop function if exists differentTime$$<BR>create function differentTime(in_section_id varchar(10),currenttime datetime)<BR>    returns int<BR>begin<BR>    declare different int;<BR>    declare ttime datetime;<BR>    set ttime = (select section_set_time from section where section_id=in_section_id);</P>
<P>    set different=to_days(currenttime)-to_days(ttime);</P>
<P>    return different;<BR>end $$<BR>delimiter ;</P>

system32 发表于 2007-11-17 18:37

[em08]谢谢!非常感谢!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.