2014-03-27 53 views
1
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 

结果显示datetime中每天每小时的所有数据。我是否可以将日期时间修剪为日期,以便结果显示当天的数据而不是一天中的小时?T-SQL组按日期而不是日期时间

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 

回答

0
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 
+0

我真的很感谢大家的帮助。隐喻有我正在寻找的答案。谢谢你们! – PdeRover

0

假设你的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 
1

当然,刚刚修剪时间部分关闭:

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 

注意,有几种方法可以剪掉日期的时间部分;这只是其中之一

相关问题