1 /* 2 author OceanHo @ 2015-10-23 10:14:21 3 獲取指定時間字符串指定日期的月最後一天日期 4 */ 5 IF OBJECT_ID('get_LastDayDate') IS NOT NULL 6 DROP FUNCTION get_LastDayDate 7 GO 8 9 CREATE FUNCTION get_LastDayDate(@dateString NVARCHAR(25)) 10 RETURNS DATETIME 11 AS 12 BEGIN 13 14 SELECT @dateString = 15 DATEADD( 16 /** 將參數3指定的時間加上參數2的天數 **/ 17 DAY, 18 19 /** 20 例如:@dateString = 2015-10-23 23:59:59 21 獲取 @dateString 的時間 天 部分,由於第三個參數,把@dateString加了一個月,獲得的時間就是 2015-11-23 23:59:59 22 這個時間的 DAY 部分,也就是 23 就是下個月 1-23號的天數,第三個參數 減去 這個天數,獲得的就是前一個月的最後一天 23 **/ 24 -(DATEPART(DAY,@dateString)), 25 26 /* 將@date 加上一個月,獲得的就是下個月的今天的具體時間 */ 27 DATEADD(MONTH,1,@dateString) 28 ) 29 RETURN @dateString 30 END 31 32 GO 33 34 -- 測試調用 35 SELECT dbo.get_LastDayDate(GETDATE()) AS 本月最後一天日期 36 37 38 SELECT dbo.get_LastDayDate(N'2015-02-05') AS 二月份最後一天日期