직원의 총 작업 시간을 계산하는 로그인 / 로그 아웃 시스템이 있습니다. 내 문제는 날짜 및 시간 차이의 형식입니다.
예:
사용자가 로그인 8:00 AM
및 로그 아웃 한 6:30 PM
경우 총계는이어야 10.50
하지만 내 SQL 출력은 10 hrs and 30 mins
. 나는 공식을 알고 30mins/60 = 50
있지만 (이어야 함 ) /60
SQL 쿼리에 Dividend ( )를 어디에 넣어야하는지 몰랐습니다 . (see below my SQL Code)
.
SQL 코드 :
SELECT *,CAST(Datediff(HOUR, 0, logout_time - login_time) +
Cast(Datediff(MINUTE, 0, logout_time - login_time) -
(Datediff(HOUR, 0, logout_time - login_time) * 60 ) AS DECIMAL) / 100 AS Decimal(18,2)) AS [TotalHrs_Worked]
FROM table_DTR
WHERE CONVERT(VARCHAR(10),log_date, 101) BETWEEN '09/01/2014' AND '11/30/2014'
datetime 값 쌍 사이의 분을 사용하여 곱하면 60.0
(소수 자리를 사용하여 10 진수 값이있는 결과가 생성됨) 문제없이 작동합니다.
이 예제를 실행하십시오.
DECLARE @start DATETIME = '2014-12-15 08:00:00'
DECLARE @end DATETIME = '2014-12-15 18:30:00'
SELECT DATEDIFF(minute, @start, @end)/60.0 AS HoursWorked
그러면 다음이 생성됩니다.
10.50
SQL에서하는 것처럼 몇 분과 몇 시간으로 분석 할 필요가 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다