Declare @Start DATETIME2, @End DATETIME2 = DATEADD(ms,-3,CONVERT(DATETIME2, CONVERT(DATE, DATEADD(DD,-DATEPART(DD, GETDATE()-1),GETDATE()))))SELECT @Start = CONVERT(DATETIME2, CONVERT(DATE, DATEADD(DD, -DATEPART(DD, @End)+1,@End)))SELECT @Start, @EndSelect CONVERT(VARCHAR(4),DATEPART(MM, start))+'/'+CONVERT(VARCHAR(4), DATEPART(DD, start)) AS [Date], COUNT (DISTINCT Username) AS uniquelogon from MiviewWhere Activity = 'Logon'and Start BETWEEN @Start AND @EndGROUP BY CONVERT(VARCHAR(4),DATEPART(MM, start))+'/'+CONVERT(VARCHAR(4), DATEPART(DD, start))
SELECT STUFF(REPLACE('/'+CONVERT(VARCHAR(5), YourDate, 101), '/0', '/'), 1, 1, '')
GROUP BY CONVERT(VARCHAR(10), YourDate, 101)
ORDER BY DATEADD(d, DATEDIFF(d, 0, YourDate), 0)
DECLARE @Miview TABLE (Username VARCHAR(20), Start DATETIME, Activity VARCHAR(20))INSERT INTO @MiviewSELECT 'Tom', '2012-09-07 12:00', 'Logon'UNION ALL SELECT 'Fred', '2012-09-07 12:01', 'Logon'UNION ALL SELECT 'Fred', '2012-09-07 12:02', 'Logon'UNION ALL SELECT 'Tom', '2012-09-05 12:00', 'Logon'UNION ALL SELECT 'Fred', '2012-09-05 12:01', 'Logon'UNION ALL SELECT 'Sam', '2012-09-05 12:02', 'Logon'UNION ALL SELECT 'Bob', '2012-09-05 12:03', 'Logon'DECLARE @Start DATE = '2012-09-04' ,@End DATE = '2012-09-08' ,@Days INT;WITH Tally (n) AS ( SELECT TOP(1+DATEDIFF(day, @Start, @End)) ROW_NUMBER() OVER (ORDER BY (SELECT NULL))-1 FROM sys.all_columns)SELECT [Date]=STUFF( REPLACE('/'+CONVERT(VARCHAR(5), Start, 101), '/0', '/') , 1, 1, '') ,UniqueLogins=COUNT(DISTINCT Username)FROM ( SELECT UserName, Start=DATEADD(d, DATEDIFF(d, 0, Start), 0), Activity FROM @Miview WHERE Activity = 'Logon' AND Start >= @Start AND Start < DATEADD(day, 1, @End) UNION ALL SELECT NULL, DATEADD(day, n, @Start), 'Logon' FROM Tally) aGROUP BY StartORDER BY Start