SQL Server 獲取最後一天(指定時間的月最後一天日期)

 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 二月份最後一天日期
相關文章
相關標籤/搜索