在使用數據庫的過程中,往往我們需要對有的數據先進行計算,然后再查詢出來,所以我們就需要創建函數來完成這項任務,在數據庫的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(@onTime, @offTime) 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)
以上只是個人在開發中的總結,不足之處望大家多指教