3

私は MySQL から来て、SQL Server 2005 で T-SQL をコーディングしようとしていますが、まったく違うことがわかりました。

これが私がやりたいことです(MySQLを使用)

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

つまり、日付ごとに合計およびグループ化されたデータのリストを取得します。

4

2 に答える 2

1

SQLServer2008がタグ付けされたときの回答

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

SQLServer2005の場合

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

SQLFiddleデモ

于 2012-10-15T00:48:53.990 に答える
0

varchar への変換は良い解決策ではありません。タイムスタンプから timepart を削除し、次のようにグループ化するだけです。

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)
于 2012-10-15T07:34:18.340 に答える