Reputation: 107
select [DateTime (UTC)],
sum([messages sent external]) as 'messages sent external',
sum([messages sent internal]) as 'messages sent internal',
sum([messages received external]) as 'messages received external',
sum([messages received internal]) as 'messages received internal',
max([Message Latency Internal High]) as 'Message Latency Internal High',
max([Message Latency Internal Avg]) as 'Message Latency Internal Avg' from dbo.Monthly_MailFlowStats_2014_03 group by [DateTime (UTC)] order by [DateTime (UTC)] asc
The results show all the data in datetime by each hour of the day. Can I trim the datetime to only be date so the results show data for the day and not hour of the day?
This:
2014-03-01
instead of:
2014-03-01 00:00:00.000
2014-03-01 01:00:00.000
2014-03-01 02:00:00.000
Upvotes: 1
Views: 152
Reputation: 6405
select cast([DateTime (UTC)] AS date) AS [Date],
sum([messages sent external]) as 'messages sent external',
sum([messages sent internal]) as 'messages sent internal',
sum([messages received external]) as 'messages received external',
sum([messages received internal]) as 'messages received internal',
max([Message Latency Internal High]) as 'Message Latency Internal High',
max([Message Latency Internal Avg]) as 'Message Latency Internal Avg'
from dbo.Monthly_MailFlowStats_2014_03
group by cast([DateTime (UTC)] AS date)
order by [Date] asc
Upvotes: 0
Reputation: 152556
Sure, just trim the time portion off:
select DATEADD(dd, DATEDIFF(dd, 0, [DateTime (UTC)]), 0) [DateTime (UTC)],
sum([messages sent external]) as 'messages sent external',
sum([messages sent internal]) as 'messages sent internal',
sum([messages received external]) as 'messages received external',
sum([messages received internal]) as 'messages received internal',
max([Message Latency Internal High]) as 'Message Latency Internal High',
max([Message Latency Internal Avg]) as 'Message Latency Internal Avg'
from dbo.Monthly_MailFlowStats_2014_03
group by DATEADD(dd, DATEDIFF(dd, 0, [DateTime (UTC)]), 0)
order by [DateTime (UTC)] asc
Note that there are several ways to trim off the time portion of a date; this is just one of them
Upvotes: 1
Reputation: 17693
Assuming you're on SQL Server 2008+:
select
CAST([DateTime (UTC)] AS DATE) AS 'Date (UTC)',
sum([messages sent external]) as 'messages sent external',
sum([messages sent internal]) as 'messages sent internal',
sum([messages received external]) as 'messages received external',
sum([messages received internal]) as 'messages received internal',
max([Message Latency Internal High]) as 'Message Latency Internal High',
max([Message Latency Internal Avg]) as 'Message Latency Internal Avg'
from
dbo.Monthly_MailFlowStats_2014_03
group by
CAST([DateTime (UTC)] AS DATE)
order by
[DateTime (UTC)] asc
Upvotes: 0