MSSQL返回季度开始月和某月是第几季度

/*
CREATE FUNCTION dbo.sys_GetQuarterBeginDate(@month smalldatetime)
RETURNS smalldatetime

AS

--function : 返回季度的开始月
BEGIN

DECLARE @dt smalldatetime

IF MONTH(@month) < 4
      SET @dt = CONVERT(VARCHAR,YEAR(@month) )+ '-1-1'
ELSE
BEGIN
      IF MONTH(@month) < 7
         SET @dt = CONVERT(VARCHAR,YEAR(@month))+ '-4-1'
      ELSE
        BEGIN
IF MONTH(@month) < 10
     SET @dt = CONVERT(VARCHAR,YEAR(@month)) + '-7-1'
ELSE
     SET @dt = CONVERT(VARCHAR,YEAR(@month) )+ '-10-1'
        END
END

    RETURN @dt

END
*/


调用:
select dbo.sys_GetQuarterBeginDate('2007-6-28')
===========================================================================================================
/*
CREATE FUNCTION dbo.sys_GetQuarter(@month smalldatetime)
RETURNS int

AS

--function : 返回某月是第几季度
BEGIN

DECLARE @qw int

SELECT @qw = CASE MONTH (@month)
     WHEN 1    THEN 1
     WHEN 2    THEN 2
     WHEN 3    THEN 3
     WHEN 4    THEN 1
     WHEN 5    THEN 2
     WHEN 6    THEN 3
     WHEN 7    THEN 1
     WHEN 8    THEN 2
     WHEN 9    THEN 3
     WHEN 10 THEN 1
     WHEN 11 THEN 2
     WHEN 12 THEN 3
END 
    RETURN @qw

END
*/

原文地址:https://www.cnblogs.com/jinweida/p/1237428.html