특정 기간 동안 어떤 사용자가 자신의 계정을 사용했는지 알고 싶은 경우 다음을 참조하십시오.
사용자가 HTTP 또는 SSH를 통해 인증 할 때마다 (HTTP 또는 SSH를 통해 Git 저장소에 액세스, 푸시 또는 푸시 포함) 또는 로그인 페이지를 통해 타임 스탬프가 업데이트됩니다.
MYSQL 쿼리
SELECT a.user_name, from_unixtime(b.attribute_value/1000)
FROM cwd_user a, cwd_user_attribute b
WHERE a.id = b.user_id and b.attribute_name = 'lastAuthenticated'
AND from_unixtime(b.attribute_value/1000) between '2013-11-05 00:00:00' and NOW();
SELECT cwd_user.user_name, to_timestamp(CAST(cwd_user_attribute.attribute_value as double precision)/1000)
FROM cwd_user_attribute, cwd_user
WHERE cwd_user_attribute.user_id = cwd_user.id
AND cwd_user_attribute.attribute_name = 'lastAuthenticated'
order by to_timestamp asc;
Postgres는 from_unixtime 함수를 포함하지 않으므로 to_timestamp를 사용하고 attribute_value를 bigint로 변환하고 1000으로 나눌 필요가 있습니다. 그런 다음 날짜를 컷오프 날짜로 변경합니다. 이 쿼리는 지정된 날짜 이후로 로그인하지 않은 모든 사용자를 반환합니다.
이 예에서는 기본 스키마 "public"을 사용하고 있다고 가정합니다. 공용 스키마를 사용하지 않을 경우 데이터베이스에서 사용중인 스키마로 쿼리를 조정해야 합니다.
오라클 쿼리
select a.user_name, to_date('1970-01-01', 'YYYY-MM-DD') + (b.attribute_value/ 86400000)
from bitbucket.cwd_user a, bitbucket.cwd_user_attribute b
where a.id = b.user_id and b.attribute_name = 'lastAuthenticated'
and to_date('1970-01-01', 'YYYY-MM-DD') + (b.attribute_value/ 86400000) < to_date('2016-09-01','YYYY-MM-DD');