按日期和总和数据选择数据 - SQL Server 2005

时间:2012-10-15 00:46:49

标签: sql tsql sql-server-2005

我来自MySQL并试图在SQL Server 2005上编写T-SQL代码,我发现它完全不同。

这是我想要做的事情(使用MySQL)

select sum(datapoint) as sum, date(mytimestamp) as date
from datalog
where datapoint = '27'
group by date

即。获取按日期汇总和分组的数据列表。

2 个答案:

答案 0 :(得分:1)

<击>

<击>

在标记sql server 2008时回答

select sum(datapoint) as [sum], CAST(mytimestamp AS DATE) as [date]
from datalog
where datapoint = '27'
group by CAST(mytimestamp AS DATE)

<击>

对于SQL Server 2005

SELECT   CONVERT(VARCHAR(11), timestamp, 111) DATE, 
         SUM(datapoint) totalDatapoint
FROM     table1
GROUP BY CONVERT(VARCHAR(11), timestamp, 111)
ORDER BY DATE ASC

SQLFiddle Demo

答案 1 :(得分:0)

转换为varchar不是一个好的解决方案,只需从时间戳中删除时间部分,然后将其分组:

select sum(datapoint) as sum, dateadd(d, 0, datediff(d, 0, mytimestamp)) as date
from datalog
where datapoint = '27'
group by datediff(d, 0, mytimestamp)