• Not sure if you're just trying to get the beginning and end of a month or the day that the month begins and ends on.

    CREATE FUNCTION [dbo].[dbFunc_GetFirstDayOfMonth]

    ( @pInputDate DATETIME )

    RETURNS DATETIME

    BEGIN

    RETURN CAST(CAST(YEAR(@pInputDate) AS VARCHAR(4)) + '/' +

    CAST(MONTH(@pInputDate) AS VARCHAR(2)) + '/01' AS DATETIME)

    END

    CREATE FUNCTION [dbo].[dbFunc_GetLastDayOfMonth]

    (@LoadID AS Int)

    RETURNS DATETIME

    BEGIN

    DECLARE @Year AS INT

    DECLARE @Month AS INT

    DECLARE @LastDay AS INT

    SET @Year = LEFT(@LoadID, 4)

    SET @Month = RIGHT(@LoadID, 2)

    SET @LastDay = CASE @Month

    WHEN 1 THEN 31

    WHEN 2 THEN CASE WHEN @Year % 4 = 0 THEN 29 ELSE 28 END

    WHEN 3 THEN 31

    WHEN 4 THEN 30

    WHEN 5 THEN 31

    WHEN 6 THEN 30

    WHEN 7 THEN 31

    WHEN 8 THEN 31

    WHEN 9 THEN 30

    WHEN 10 THEN 31

    WHEN 11 THEN 30

    WHEN 12 THEN 31

    END

    RETURN CAST

    (CASE WHEN LEN(@Month) = 1

    THEN '0' + CAST(@Month AS CHAR(1)) ELSE

    CAST(@Month AS CHAR(2)) END + '/' + CAST(@LastDay AS CHAR(2)) + '/' + CAST(@Year AS CHAR(4)) AS DATETIME)

    END