Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL में दो तिथियों के बीच पूर्ण महीनों की संख्या की गणना करना

मूल पोस्ट में कुछ बग थे... इसलिए मैंने इसे यूडीएफ के रूप में फिर से लिखा और पैक किया।

CREATE FUNCTION FullMonthsSeparation 
(
    @DateA DATETIME,
    @DateB DATETIME
)
RETURNS INT
AS
BEGIN
    DECLARE @Result INT

    DECLARE @DateX DATETIME
    DECLARE @DateY DATETIME

    IF(@DateA < @DateB)
    BEGIN
        SET @DateX = @DateA
        SET @DateY = @DateB
    END
    ELSE
    BEGIN
        SET @DateX = @DateB
        SET @DateY = @DateA
    END

    SET @Result = (
                    SELECT 
                    CASE 
                        WHEN DATEPART(DAY, @DateX) > DATEPART(DAY, @DateY)
                        THEN DATEDIFF(MONTH, @DateX, @DateY) - 1
                        ELSE DATEDIFF(MONTH, @DateX, @DateY)
                    END
                    )

    RETURN @Result
END
GO

SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-05-15') as MonthSep -- =0
SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-05-16') as MonthSep -- =1
SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-06-16') as MonthSep -- =2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में CASE एक्सप्रेशन का उपयोग करना

  2. टी-एसक्यूएल का उपयोग कर स्ट्रिंग से संख्यात्मक भाग कैसे प्राप्त करें?

  3. SQL सर्वर अद्वितीय बाधाओं में अंतर्दृष्टि

  4. एग्रीगेट फ़ंक्शन का उपयोग करके तालिका से अधिकतम और न्यूनतम मान कैसे प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 129

  5. SQL सर्वर (T-SQL) में डेटाबेस मेल खाता अपडेट करें