在使用資料庫的過程中,往往我們需要對有的數據先進行計算,然後再查詢出來,所以我們就需要創建函數來完成這項任務,在資料庫的Programmability(如圖1)下麵的Function中創建函數(如圖2) (圖1)(圖2) 在這裡創建的函數一般有兩種返回類型,一種是返回一個集合(數據表),另一種是直接 ...
在使用資料庫的過程中,往往我們需要對有的數據先進行計算,然後再查詢出來,所以我們就需要創建函數來完成這項任務,在資料庫的Programmability(如圖1)下麵的Function中創建函數(如圖2)
(圖1)(圖2)
在這裡創建的函數一般有兩種返回類型,一種是返回一個集合(數據表),另一種是直接返回一個字元串(如圖3)
(圖3)
下麵是兩種函數的創建實例
1、集合
創建函數fn_selectWorkTime
Create FUNCTION fn_selectWorkTime
(
@plantID int
, @CheckTime datetime --考勤時間
, @deptID int --部門
, @wShop int --工段
, @roleID int --崗位
, @wGroup int --班組
, @uID int --員工
)
RETURNS @retValue Table (atWork datetime, offWork datetime)
AS
BEGIN
Declare @onTime datetime
, @offTime datetime
--......
Set @onTime = '2016-07-01 08:00'
Set @offTime = '2016-07-01 17:00'
Insert Into @retValue(atWork, offWork)
Values(@onTime1, @offTime1, @isSunday, @atDinner, @offDinner, @atLunch, @offLunch, @hasStdTime)
Return
END
在存儲過程中調用所創建的函數
Select *
From dbo.fn_calStdAttAll(@plantid, @time1, @deptID, @wShop, @roleID, @wGroup, @uid5)
2、字元串
創建函數 fn_calStdAtt
CREATE FUNCTION fn_calStdAtt
(
@CheckTime datetime --考勤時間
, @deptID int --部門
, @wShop int --工段
, @roleID int --崗位
, @wGroup int --班組
, @uID int --員工
, @which char(1) --I:上班時間,O:下班時間
)
RETURNS varchar(20)
AS
BEGIN
Declare @retValue datetime
--......
Set @retValue = '2016-07-01 08:00'
Return Convert(varchar(20), @retValue, 120)
END
在存儲過程中調用所創建的函數
select dbo.fn_calStdAtt (@CheckTime, @deptID, @wShop, @roleID, @wGroup, @uID, @which)
以上只是個人在開發中的總結,不足之處望大家多指教