我刚写了一个存储函数来计算两个日期之间的工作日。 这工作mysql存储函数的用法
选择 CountWeekDays( '2010-03-07', '2010-04-07')
这不起作用
选择 CountWeekDays( o.order_date,o.created_date) from orders o;
任何想法如何使这项工作的一个?
函数定义
定界符$$;
CREATE FUNCTION
CountWeekDays
(SDATE VARCHAR(50),EDATE VARCHAR(50)) 返回intBEGIN
DECLARE wdays,TDIFF,计数器,THISDAY SMALLINT;
DECLARE newdate DATE;
SET newdate:= SDATE;
SET wdays = 0;
如果DATEDIFF(EDATE,SDATE)= 0 THEN RETURN 1;万一;
if DATEDIFF(edate,sdate)< 0 THEN RETURN 0;万一;
label1的:LOOP
SET THISDAY = DAYOFWEEK(newdate);
IF THISDAY 2到6之间再设置 wdays:= wdays + 1;万一;
SET newdate = DATE_ADD(newdate, INTERVAL 1天);
IF DATEDIFF(edate,newdate)< 0 THEN LEAVE label1;万一;
END LOOP label1;
RETURN wdays;
END
o.order_date和o.created_date的列类型是什么? – Andy 2010-04-06 11:26:14
@它的日期时间 – shikhar 2010-04-06 11:36:41