Генерация календаря дат средствами T-SQL

Tsql теория > Генерация календаря дат средствами T-SQL
01.04.2013 14:25:19


Наиболее часто встречающиеся слова в статье:

[DATEADD] [monthCountFromTodayDate] [DATEDIFF] [Dateadd] [GETDATE] [FUNCTION] [fnGetCalendar] [RETURNS] [RETURN ] [ SELECT  ]


Статья:

CREATE FUNCTION [dbo].[fnGetCalendar]

 @monthCountFromTodayDate INT
)
RETURNS TABLE 
AS
RETURN 
(
 SELECT  
 CAST(DATEADD(m,-1,DATEADD(mm, DATEDIFF(m,0,(Dateadd(month, -1*(rnk-1), GETDATE())))+1,0)) AS DATE) as first_month_day, 
 CAST(DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,(Dateadd(month, -1*(rnk-1), GETDATE())))+1,0)) AS DATE) as last_month_day
 FROM    
 ( SELECT TOP(@monthCountFromTodayDate) ROW_NUMBER() OVER ( ORDER BY object_id ) AS rnk
     FROM sys.all_columns
 ) t
)