SQL Server 2008을 사용하여 두 번에 발생한 시간 간격 (초)을 계산하려고합니다.TSQL - 쿼리에서 datediff를 계산하고 값을 설정 하시겠습니까?
시작 날짜는 특정 ID가 존재하는 (필터가 참인 경우) 마지막 발생 시간 소인이며 해당 타임 스탬프 레코드에서 시간을 가져오고 현재 처리 시간 및 반환에 대해 DATEDIFF()를 수행합니다 @LastEventTimespan 값 (초).
DECLARE @CurrentProcessTime DATETIME
DECLARE @LastEventTimespan DATETIME
SET @CurrentProcessTime = GetDate()
-- find the timespan since the last session event
-- DATEDIFF (datepart , startdate , enddate)
SELECT MAX(PageVisitEventID) AS LastPageVisitEventID, @LastEventTimespan = DATEDIFF(second , DateAdded , @CurrentProcessTime)
FROM PageVisitEvents
WHERE UserID = @UserID
GROUP BY LastPageVisitEventID
나는 데이터 검색을 수행 할 때 그러나 더 노 값을 할당하는 것입니다려고하지, 내가 따라 필터와 프로세스의 MAX ID를 얻을 수 있지만, @LastEventTimespan을 설정할 수 없습니다입니다 수있는 것이라고 상상했다.
어떻게이 문제를 해결할 수 있습니까?
감사합니다.
질문이 잘못되었습니다. 죄송합니다. @LastEventTimespan으로 무엇을 할 계획입니까? GROUP BY 때문에 여러 행을 가질 수 있기 때문에 허용되지 않는 행이 될 수 있기 때문에 의미가 없습니다. 그러나 행별로 계산하려면 GROUP BY를 사용해야합니다. 어쨌든 MAXed 컬럼에서 GROUP BY를 사용하지 않으므로 상황이 악화됩니다. – gbn