如何创建一个函数来减去两个日期?

时间:2013-12-19 11:35:31

标签: sql function datetime oracle-sqldeveloper

我有一个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')

1 个答案:

答案 0 :(得分: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())