2016-09-16 87 views
-1

有人可以将这个函数从SQL Server转换为PostgreSQL吗?将函数从SQL Server转换到PostgreSQL

该函数获取开始和结束日期并创建日期范围并生成输出。

CREATE FUNCTION [dbo].[DateRange] 
(  
     @Increment    CHAR(1), 
     @StartDate    DATETIME, 
     @EndDate    DATETIME 
) 
RETURNS 
@SelectedRange TABLE 
(IndividualDate DATETIME) 
AS 
BEGIN 
     ;WITH cteRange (DateRange) AS (
      SELECT @StartDate 
      UNION ALL 
      SELECT 
        CASE 
         WHEN @Increment = 'd' THEN DATEADD(dd, 1, DateRange) 
         WHEN @Increment = 'w' THEN DATEADD(ww, 1, DateRange) 
         WHEN @Increment = 'm' THEN DATEADD(mm, 1, DateRange) 
        END 
      FROM cteRange 
      WHERE DateRange <= 
        CASE 
         WHEN @Increment = 'd' THEN DATEADD(dd, -1, @EndDate) 
         WHEN @Increment = 'w' THEN DATEADD(ww, -1, @EndDate) 
         WHEN @Increment = 'm' THEN DATEADD(mm, -1, @EndDate) 
        END) 

     INSERT INTO @SelectedRange (IndividualDate) 
     SELECT DateRange 
     FROM cteRange 
     OPTION (MAXRECURSION 3660); 
     RETURN 
END 
GO 
+0

这个网站是编程问题。它不是代码翻译服务。 –

回答