我剛寫了一個存儲函數來計算兩個日期之間的工作日。 這工作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