Q&A for students, teachers, polyglots, and anyone interested in the techniques of second-language acquisition
-- At what hour do I add most posts, both questions and answers? -- UTC (GMT) time zone. The week starts with Sunday. -- Parameters: -- HourOrDOW (1 - hours, 2 - day of week, 3 - both) -- Mine (1 - show for one user, 0 - show stats for all users) -- UserId DECLARE @Choice int = ##HourOrDOW:int?1## DECLARE @Mine int = ##Mine:int?1## DECLARE @UsedId int = ##UserId:int##; IF @Choice = 1 SELECT DATEPART("hour", CreationDate) AS [Hour you add a post], COUNT(*) AS [Number of your posts per hour, UTC (GMT)] FROM Posts WHERE OwnerUserId = CASE @Mine WHEN 1 THEN @UsedId ELSE OwnerUserId END GROUP BY DATEPART("hour", CreationDate) ELSE IF @Choice = 2 WITH tmp AS ( SELECT *, DATEPART("weekday", CreationDate) AS wpart, DATENAME(dw, CreationDate) AS wname FROM Posts ) SELECT wpart AS [Weekday you add a post], -- Little hack to show DoW with data.SO graph builder wname, COUNT(*) AS [Number of your posts per weekday] FROM tmp WHERE OwnerUserId = CASE @Mine WHEN 1 THEN @UsedId ELSE OwnerUserId END GROUP BY wpart, wname ORDER BY wpart ELSE IF @Choice = 3 WITH tmp AS ( SELECT *, ROUND((CAST(DATEPART("weekday", CreationDate) AS float) + CAST(DATEPART("hour", CreationDate) AS float) / 24), 2) AS cd FROM Posts ) SELECT cd AS [Day of week + time], COUNT(*) AS [Number of posts] FROM tmp WHERE OwnerUserId = CASE @Mine WHEN 1 THEN @UsedId ELSE OwnerUserId END GROUP BY cd ORDER BY cd