2012-03-18 5 views
0

직원이 동물원에서 일하기 시작한 날짜가 있지만, 근무 시간을 알아야합니다. 내 연구를 수행하고 내가 뭘 해야할지 알고 있지만 DATEDIFF 함수 내에서 NOW() 함수를 통합하는 구문을 파악하는 것 같습니다. 나는 모든 활동적인 직원들과 일한 양 (소수점 이하 2 자리수)을 보여줘야한다.시작 날짜와 시스템 시간의 차이점

나는

그래서 바로 할 수 있습니다 사람이 1996년 9월 18일 (년/월 작업을 시작 말 두 개의 열 (직원이 활성화 된 경우는 null 같을 수 날짜), 가입 (일) 사직을/dd).

감사합니다. 친절하게 도와주세요.

+0

사용중인 데이터베이스? –

+0

S/O에 오신 것을 환영합니다. 일반적으로 시도한 것을 제공하는 것이 좋습니다. 먼저 좋은 결과를 주면 더 많은 것을 배웁니다. : – halfer

+1

(데이터베이스 유형으로 질문을 다시 태그하십시오). – halfer

답변

1

(당신 가정이 MySQL을 사용합니다 - NOW() 함수에서)

내가 Resigned 또는 NOW() 중 하나가 DATEDIFF()에 의해 계산에 사용되는 있도록 COALESCE() 기능을 사용할 필요가 있다고 생각 :

DATEDIFF(COALESCE(Resigned, CURDATE()), Joined) AS days 

을 그래서, 당신은 다음과 같은 것을 가질 수 있습니다 :

(DATEDIFF(COALESCE(Resigned, CURDATE()), Joined))/365 AS years 

또는 :

(DATEDIFF(COALESCE(Resigned, CURDATE()), Joined))/365.25 AS years 

극단적 인 경우와 윤년에 대해 매우 정확하고 싶다면보다 복잡한 계산이 필요합니다. 2 소수점 (가정 TSQL)와

1

SELECT ROUND( 
     CONVERT(FLOAT, 
      DATEDIFF(day,joined,ISNULL(resigned,GETDATE())))/365,2) 
관련 문제