suppose the fiscal year is starting from July/1st to June/30th.
I have to calculate the week no. accordingly in SQL Server 2005.
Please Suggest!
Many Tha
This one worked for me:
SELECT dt AS DayDate,
CONVERT(VARCHAR,DATENAME(weekday,dt)) AS [DayOfWk],
CONVERT(int,CONVERT(VARCHAR,DATEPART(yyyy,dt)) + RIGHT('00' + CONVERT(VARCHAR,DATEPART(wk,dt)),2)) AS [WeekID],
'Week ' + CONVERT(VARCHAR,DATEPART(wk,dt))AS [WeekDsc],
DATEPART(wk,dt) AS [WeekNbr],
DATEADD(dd, -(DATEPART(dw, dt)-1), dt) AS [WeekStartDay],
DATEADD(dd, 7-(DATEPART(dw, dt)), dt) AS [WeekEndDay],
CONVERT(VARCHAR,CASE WHEN DATEPART(mm,dt) > 6 THEN DATEPART(yyyy,dt) + 1 ELSE DATEPART(yyyy,dt) END) + RIGHT('00'+ CONVERT(VARCHAR,DATEDIFF(week,DATEADD(dd, 7-(DATEPART(dw, CASE WHEN DATEPART(mm,dt) > 6 THEN CONVERT(VARCHAR,DATEPART(yyyy,dt)) + '-07-01' ELSE CONVERT(VARCHAR,DATEPART(yyyy,dt) - 1) + '-07-01' END)), CASE WHEN DATEPART(mm,dt) > 6 THEN CONVERT(VARCHAR,DATEPART(yyyy,dt)) + '-07-01' ELSE CONVERT(VARCHAR,DATEPART(yyyy,dt) - 1) + '-07-01' END) + 1,DATEADD(dd, -(DATEPART(dw, dt)-1), dt)) + 2) ,2) AS [FinWkID]
FROM
(
SELECT DATEADD(day,increment,'2014-01-01') dt
FROM
(
SELECT top 5000 ROW_NUMBER() OVER (ORDER BY s1.[object_id]) - 1 AS increment
FROM sys.all_objects AS s1
CROSS JOIN sys.all_objects AS s2
ORDER BY s1.[object_id]
) SQ
) DATE_GENERATOR