2013-12-19 46 views
0

我有一個bigdate,一個smalldate,即bigdate比smalldate更大,我想通過函數實現下面的代碼。我如何將其轉換爲函數?如何創建一個函數來減去兩個日期?

NUMTODSINTERVAL (
    CASE 
    WHEN TRUNC(datebig - datesmall) = 0 
    THEN datebig  - datesmall 
    ELSE(
     CASE 
     WHEN datebig   - TRUNC (datebig) > (21/24) 
     THEN TRUNC (datebig) + (21/24) 
     ELSE datebig 
     END - 
     CASE 
     WHEN datesmall   - TRUNC (datesmall) < (11/24) 
     THEN TRUNC (datesmall) + (11/24) 
     ELSE datesmall 
     End) 
    End , 'DAY') 

回答

0

如果你只是問如何創建一個函數,這將放棄目標函數並創建你的新函數。

IF OBJECT_ID (N'dbo.YourNewFunction', N'FN') IS NOT NULL 
    DROP FUNCTION dbo.YourNewFunction; 
GO 
CREATE FUNCTION dbo.ISOweek (@DATESMALL DATETIME, @DATEBIG DATETIME) 
RETURNS INT 
WITH EXECUTE AS CALLER 
AS 
BEGIN 
    -- ENTER FUNCTION 
    RETURN 0 
END 
GO 

而這會調用你的新功能。

SELECT dbo.YourNewFunction(GetDate(), GetDate())