View on GitHub
creating calendar using sql server
Advertisments
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