Skip to main content Skip to docs navigation
View on GitHub

creating calendar using sql server

Advertisments

Suraj Vishwakarma 02-02-2021

 In the below example I have created a simple calendar using sql server and its predefined functions

SQL Server Temporary Tables
The temporary tables are useful for storing the immediate result sets that are accessed multiple times.

Creating temporary tables

SQL Server provided two ways to create temporary tables via SELECT INTO and CREATE TABLE statements.

DECLARE @start_date DATE = '2022-06-27';
DECLARE @end_date DATE = '2023-06-27';
DECLARE @DateDiff INT;
DECLARE @count INT;
SET @count = 0; -- DAY ONE COUNT OF START DATE
SET @DateDiff = DATEDIFF(DAY, @start_date, @end_date) -- DIFF BTW TWO DATE

SELECT @DateDiff

WHILE @count <= @DateDiff BEGIN
--SELECT DATEADD(DAY, @count, @start_date) AS DateAdd;
INSERT INTO #temp_cal(d_date, end_date) VALUES(DATEADD(DAY, @count, @start_date), @end_date);
 SET @count = @count + 1; 
END


DROP TABLE IF EXISTS #temp_cal
CREATE TABLE #temp_cal(
id INT IDENTITY(1,1) PRIMARY KEY,
d_date DATE, 
end_date DATE
)

SELECT DAY(d_date) AS 'DAY', MONTH(d_date) as 'MONTH', DATENAME(weekday, d_date) as 'DAY_NAME',
DATENAME(month, d_date) as 'MONTH_NAME', DATENAME(year, d_date) as 'YEAR', d_date as 'DATE',
DATENAME(week, d_date) as 'WEEK', DATEPART(DY, d_date) AS 'DAY_OF_YEAR',
DATEPART(ISO_WEEK, d_date) AS 'ISO_WEEK', DATEPART(wk, d_date) AS 'US WEEK',
DATEPART(wk, d_date) AS 'WEEK_OF_YEAR',
DATEDIFF(DAY,d_date, end_date) AS 'NUMBER_OF_DAYS_IN_MONTH',
DATEDIFF(WEEK,d_date,end_date) AS 'WEEKS_IN_YEAR',
DATEDIFF(MONTH,d_date,end_date) AS 'MONTHS_IN_YEAR'
FROM #temp_cal

 

Comments