zoukankan      html  css  js  c++  java
  • MS SQL Server Quarter Function

    近段时间开发的ERP系统,需要涉及至季度的一些日期。在系统中,实现了三个函数。

    获取某一天的所在季度的第一天:

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    -- =============================================
    --
     Author:         Insus.NET
    --
     Create date:    2012-08-24
    --
     Description:    获取某一天所在季度的第一天。
    --
     =============================================
    CREATE FUNCTION [dbo].[udf_FirstDayOfQuarter] 
    (
         @Date DATETIME
     )
    RETURNS DATETIME
    BEGIN    
    RETURN CAST(YEAR(@DateAS VARCHAR(4)) + CASE WHEN MONTH(@DateIN ( 1,  2,  3THEN '-01-01'
                                                  WHEN MONTH(@DateIN ( 4,  5,  6THEN '-04-01'
                                                  WHEN MONTH(@DateIN ( 7,  8,  9THEN '-07-01'
                                                  WHEN MONTH(@DateIN (101112THEN '-10-01'
    END
    END

    获取某一天所在季度的最后一天:

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    -- =============================================
    --
     Author:         Insus.NET
    --
     Create date:    2012-08-24
    --
     Description:    获取某一天所在季度的最后一天。
    --
     =============================================
    CREATE FUNCTION [dbo].[udf_LastDayOfQuarter] 
    (
         @Date DATETIME
     )
    RETURNS DATETIME
    BEGIN    
    RETURN CAST(YEAR(@DateAS VARCHAR(4)) + CASE WHEN MONTH(@DateIN ( 1,  2,  3THEN '-03-31'
                                                  WHEN MONTH(@DateIN ( 4,  5,  6THEN '-06-30'
                                                  WHEN MONTH(@DateIN ( 7,  8,  9THEN '-09-30'
                                                  WHEN MONTH(@DateIN (101112THEN '-12-31'
    END
    END

     季度函数:

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    --
     Author:         Insus.NET
    --
     Create date:    2012-08-24
    --
     Description:    季度函数。
    --
     =============================================
    ALTER FUNCTION [dbo].[udf_Quarter]

       @Year INT
    )
    RETURNS @t TABLE ([Quarter] TINYINT,[FirstDate] DATETIME,[LastDate] DATETIME)
    BEGIN
    INSERT INTO @t ([Quarter],[FirstDate],[LastDate]VALUES (1CAST(@Year AS VARCHAR(4)) + '-01-01',CAST(@Year AS VARCHAR(4)) + '-03-31'),
                                                             (2CAST(@Year AS VARCHAR(4)) + '-04-01',CAST(@Year AS VARCHAR(4)) + '-06-30'),
                                                             (3CAST(@Year AS VARCHAR(4)) + '-07-01',CAST(@Year AS VARCHAR(4)) + '-09-30'),
                                                             (4CAST(@Year AS VARCHAR(4)) + '-10-01',CAST(@Year AS VARCHAR(4)) + '-12-31')

    RETURN 
    END
  • 相关阅读:
    Count and Say leetcode
    Find Minimum in Rotated Sorted Array II leetcode
    Find Minimum in Rotated Sorted Array leetcode
    Search in Rotated Sorted Array II leetcode
    search in rotated sorted array leetcode
    Substring with Concatenation of All Words
    Subsets 子集系列问题 leetcode
    Sudoku Solver Backtracking
    Valid Sudoku leetcode
    《如何求解问题》-现代启发式方法
  • 原文地址:https://www.cnblogs.com/insus/p/2654174.html
Copyright © 2011-2022 走看看