我有一個查詢獲取最近24小時或記錄並計數它們,然後通過ID對記錄進行分組。選擇最近24小時加上當天的前8小時
我想什麼是它選擇過去24小時,加上前8小時當天的眼下
SELECT controllerID,
DATEPART (HOUR, dateadd(hour, datediff(hour, 0, dtReading), 0)) as TimeStampHour,
Count(*) As Count
FROM [ReaderData]
WHERE dtReading >= dateadd(day,datediff(day,1,GETDATE()),0)
AND dtReading < dateadd(day,datediff(day,0,GETDATE()),0)
AND (EventType = '(0x03)Door state low')
AND CardID = 'fffffff0'
GROUP BY controllerID, dateadd(hour, datediff(hour, 0, dtReading), 0)
ORDER BY controllerID, dateadd(hour, datediff(hour, 0, dtReading), 0);
我可以改變這種狀況正在改變選擇的天-1和0在哪裏條件改變日期。目前這個查詢產生這樣
controllerID TimeStampHour Count
13 0 129
13 1 114
13 2 104
13 3 96
13 4 111
13 5 114
13 6 97
13 7 116
13 8 62
13 9 82
13 11 62
13 12 112
13 13 78
13 14 20
13 15 11
13 16 116
13 17 122
13 18 106
13 19 126
13 20 125
13 21 105
13 22 122
13 23 16
28 10 12
28 16 8
30 0 162
30 1 161
30 2 161
30 3 62
30 4 61
30 5 62
結果正如你可以看到有用於每個小時的控制器ID
我想是表示小時的計數,以延長8小時的對於controllerID 13 23小時後,例如第二天 的TimeStampHour是0,但是這將是後的第二天已經被選定
供您參考http://stackoverflow.com/questions/1888544/how-to-select-記錄從上次24小時使用sql –
我不想過去24小時,我想要一天+第二天的第一個8小時 查詢我已經獲取選定日期的記錄只是不是第二天的第一個8小時 –
爲什麼不像在DATEADD()中添加8小時那麼簡單? tetime過濾器?從您當前的腳本看來,您已經知道如何使用DATEADD()。 –