クエリの取得に問題があります。私のサンプルデータに基づいています。TestDate Hourに基づいて平均経過時間を求めます特定の日にたとえば、午後1時に月曜日に12の経過時間があり、午後1時に金曜日に16の経過時間がある場合、月曜日の平均経過時間を1とし、12と金曜日を16にする午後1時に経過した時間は一般的に14です(詳しい説明については、下のクエリを参照してください)。ここでDateTimeの時間に基づいて平均値を取得するSQL
は、私が働いている私のサンプルデータです:
TestDate ElapsedTime
2016-12-05 15:04:47.000 00:00:54.8507507
2016-12-05 15:04:47.000 00:00:03.8507507
2016-12-05 11:04:47.000 00:00:14.8507507
2016-12-05 12:04:47.000 00:00:05.8507507
2016-12-05 13:04:47.000 00:00:07.8507507
2016-12-09 13:04:47.000 00:00:50.8507507
2016-12-05 13:04:47.000 00:00:04.8507507
2016-12-05 13:04:47.000 00:00:04.8507507
2016-12-05 13:04:47.000 00:00:04.8507507
2016-12-05 13:04:47.000 00:00:04.8507507
2016-12-07 13:04:47.000 00:00:04.8507507
2016-12-09 13:04:47.000 00:00:50.8507507
注:TestDateは日時で、経過時間がvarchar型である(それがのTimeSpanとして保存し、その後、交流の文字列に変換されますことを# 応用)。ここで
は私が平均経過時間を取得することができるが、私は日に基づいて時間を取得することはできませんよ、私のクエリ、一般的にはわずか数時間である:
Select x.TestRunTime,
Avg(x.ElapsedTime) As AverageElapsedTime
FROM
(
SELECT
DATEPART(HOUR, CAST(TestDate AS TIME(6))) AS TestRunTime,
(DatePart(minute,Cast(ElapsedTime as Time(6))) * 60) +
DatePart(second,Cast(ElapsedTime as Time(6))) +
(DatePart(millisecond,Cast(ElapsedTime as Time(6))) * .001)
As ElapsedTime
FROM RunTimes
) AS x
GROUP BY x.TestRunTime
誰も私が何を把握助けることができます私は行方不明ですか?私は私が近づいていることを知っている、私はちょうど経過時間の日のセクションを得ることができていない。
おかげで、
私は来週ヒットたら残念ながら、私はそれが同じ列にしていない別の列になるようにしても、これは今月のために働くだろう必要がありますが、例えば、曜日がリセットされます – Volk
あなたが必要とするのは、結果の中のすべてのラウンドアワーです: '2016-12-05 11:00:00.000'、 '2016-12-05 12:00:00.000'、。 ? – Serg
SQLのFormat関数を使って動作させましたが、最終的には現在の日付でラウンドアワーが必要です。 – Volk