직원의 작업 로그를 기록하는 테이블이 있습니다. staffid, orderid, Startingtime, endingtime 등의 테이블 열. 두 시간 즉 시작 시간과 종료 시간의 차이점을 찾는 방법을 알고 있습니다. 그러나 나는 다른 일을 시작하기 위해 노동자가 얼마나 많은 시간을 보냈는지 알 필요가있다. staffid workid Startingtime endingtime 여기 (100) 10,222 오후 11시 반 오후 11시 50분 20 100 20,122 오후 11시 55분 오후 1시 55분 120 timetaken 전 직원이 두 작업 사이의 경과 시간 (분)을 계산해야합니다. (여기 오분 오후 11시 50분과 오후 11시 55분)두 엔트리 사이의 경과 시간 계산
0
A
답변
0
원하는 결과에 대해 아래 쿼리 쿼리를 사용하십시오. 참고 : 쿼리는 모든 직원에 대해 매일 작동합니다.
CREATE TABLE dbo.CalcTimeDiff
(Staffid INT
,Orderid INT
,Startingtime DateTime
,Endingtime Datetime
)
GO
INSERT INTO dbo.CalcTimeDiff
SELECT '1','1','2016-08-21 11:30:00.000','2016-08-21 11:50:00.000'
UNION
SELECT '1','2','2016-08-21 11:55:00.000','2016-08-21 13:55:00.000'
GO
아래 쿼리는 경과 시간을 분 단위로 표시합니다.
SELECT StaffiD,DATEDIFF(MINUTE,MIN(Startingtime),MAX(endingtime))-SUM(DATEDIFF(MINUTE,Startingtime,endingtime)) LapsedTime
FROM dbo.CalcTimeDiff
GROUP BY StaffiD,convert(date,Startingtime)
GO
0
여기서 worklog는 테이블의 이름이고 '11 .50 AM '대신 '11 : 50 AM'으로 저장됩니다. 나는 당신의 문제를 해결할 것 같아요
DECLARE @DIFFERENCE INT,@TIME1 VARCHAR(10),@TIME2 VARCHAR(10),@ID INT
DECLARE @TEMP_DATE TABLE (ID INT IDENTITY(1,1),STAFFID INT, WORKID INT,
STARTINGTIME VARCHAR(10), ENDINGTIME VARCHAR(10), TIMETAKEN INT)
INSERT INTO @TEMP_DATE SELECT * FROM WORKLOG
DECLARE C CURSOR FOR
SELECT ID FROM @TEMP_DATE
OPEN C
FETCH NEXT FROM C INTO @ID
WHILE @@FETCH_STATUS=0
BEGIN
IF (@ID != (SELECT COUNT(1) FROM WORKLOG))
BEGIN
SET @TIME1=(SELECT STARTINGTIME FROM @TEMP_DATE WHERE [email protected])
SET @TIME2=(SELECT STARTINGTIME FROM @TEMP_DATE WHERE ID=(@ID+1))
set @DIFFERENCE=(SELECT DATEDIFF(MINUTE,cast(@TIME1 as time), cast(@TIME2 as time)))
set @TIME1=(select cast(WORKID as varchar(20)) from @TEMP_DATE where [email protected])
set @TIME2=(select cast(WORKID as varchar(20)) from @TEMP_DATE where id=(@id+1))
PRINT 'Time difference between workid ('[email protected]+' and '[email protected]+') is => '+cast(@DIFFERENCE as varchar(20))
END
FETCH NEXT FROM C INTO @ID
END
CLOSE C
DEALLOCATE C
관련 문제
- 1. Calc 두 함수 사이의 경과 시간 계산
- 2. 자정과 현재 시간 사이의 경과 시간 계산
- 3. 2 datetime 사이의 경과 근무 시간 계산
- 4. 레일에서 경과 시간 계산
- 5. 메서드의 경과 시간 계산
- 6. requestAnimationFrame 계산 경과 시간
- 7. 경과 시간 계산
- 8. 두 날짜 시간 사이의 시간 계산
- 9. SQL Server 2012 - 주말을 제외하고 두 datetimes 사이의 근무 시간 동안 경과 시간 계산
- 10. 두 날짜 사이의 일일 "영업 시간"계산
- 11. 마지막 이벤트 이후의 경과 시간 계산
- 12. 행을 삽입 할 Excel의 경과 시간 계산
- 13. PHP에서 PM까지 경과 된 시간 계산
- 14. 시작 시간 및 경과 시간과의 시차 계산
- 15. Android에서 두 MotionEvents 사이의 경과 시간을 측정하십시오.
- 16. 두 시간 간격 사이의 시간 차이 계산 - 논리 문제
- 17. PHP에서 두 24 시간 사이의 시간 차이를 계산
- 18. 행 요소 사이의 시간 계산
- 19. Verilog에서 이벤트 사이의 시간 계산
- 20. 메시지 사이의 시간 계산 CANBUS
- 21. git 커밋 사이의 시간 계산
- 22. 두 이벤트 사이의 시간 간격
- 23. 두 이벤트 사이의 시간
- 24. php와 mysql의 두 날짜 사이의 경과 시간을 계산할 때 예기치 않은 시간 (음수 시간)
- 25. C의 시간 경과 교차로 #
- 26. 두 달 사이의 달 계산
- 27. 두 EditText 사이의 시간차 계산
- 28. 두 점 사이의 거리 계산
- 29. 두 표 사이의 일치 계산
- 30. 두 벡터 사이의 각도 계산?