finding dates in sql
i want to find all the dates with day name of year 2015
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question
It is the same account you read, post and publish with — and you will come straight back to this page.
Upendra Pratap ShahiPosted Aug 11, 2015, 5:35 AM
Declare @FromDate datetime='2015-01-01',@ToDate datetime='2015-12-31';
WITH Dates (DateNo) AS (
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, @ToDate) - DATEDIFF(DAY, @FromDate, @ToDate), 0)
UNION ALL SELECT DATEADD(DAY, 1, DateNo)
FROM Dates
WHERE DATEADD(DAY, 1, DateNo) <=@ToDate)
SELECT DateNo as [Date],DATENAME(month, DateNo) as [Month Name],DATENAME(DW, DateNo) as [Day Name]
FROM Dates
option (maxrecursion 365);
OutPut-Khan Abrar AhmedPosted Aug 11, 2015, 7:29 AM
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, @ToDate) - DATEDIFF(DAY, @FromDate, @ToDate), 0)
UNION ALL SELECT DATEADD(DAY, 1, DateNo)
FROM Dates
WHERE DATEADD(DAY, 1, DateNo) <=@ToDate)
Insert into tbl_ holiday
SELECT DateNo as [Date],DATENAME(month, DateNo) as [Month Name],DATENAME(DW, DateNo) as [Day Name]
FROM Dates
where DATENAME(DW, DateNo) ='Thursday'
option (maxrecursion 365);
ravi rawatPosted Aug 11, 2015, 7:23 AM
Upendra Pratap ShahiPosted Aug 11, 2015, 5:35 AM
Rajeesh MenothPosted Aug 11, 2015, 5:27 AM
Upendra Pratap ShahiPosted Aug 11, 2015, 5:26 AM
Khan Abrar AhmedPosted Aug 11, 2015, 5:25 AM
WITH Dates (DateNo) AS (
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, @ToDate) - DATEDIFF(DAY, @FromDate, @ToDate), 0)
UNION ALL SELECT DATEADD(DAY, 1, DateNo)
FROM Dates
WHERE DATEADD(DAY, 1, DateNo) <=@ToDate)
SELECT DateNo as [Date],DATENAME(month, DateNo) as [Month Name],DATENAME(DW, DateNo) as [Day Name]
FROM Dates
where DATENAME(DW, DateNo) ='Thursday'
option (maxrecursion 365);
ravi rawatPosted Aug 11, 2015, 5:21 AM
Upendra Pratap ShahiPosted Aug 11, 2015, 5:20 AM
Hello use this query-
@FirstDateOfYear DATETIME,
@LastDateOfYear DATETIME
-- You can change @year to any year you desire
SELECT @year = 2015
SELECT @FirstDateOfYear = DATEADD(yyyy, @Year - 1900, 0)
SELECT @LastDateOfYear = DATEADD(yyyy, @Year - 1900 + 1, 0)
-- Creating Query to Prepare Year Data
;WITH cte AS (
SELECT 1 AS DayID,
@FirstDateOfYear AS FromDate,
DATENAME(dw, @FirstDateOfYear) AS Dayname
UNION ALL
SELECT cte.DayID + 1 AS DayID,
DATEADD(d, 1 ,cte.FromDate),
DATENAME(dw, DATEADD(d, 1 ,cte.FromDate)) AS Dayname
FROM cte
WHERE DATEADD(d,1,cte.FromDate) < @LastDateOfYear
)
SELECT FromDate AS Date, Dayname
FROM CTE
OPTION (MaxRecursion 370)
Rajeesh MenothPosted Aug 11, 2015, 5:15 AM