2011-08-08 8 views

답변

2

다음 중 하나를 smalldatetime 그래서 당신이 필요없이 24 시간 이상을 갈 수있는 옵션이 나는 매장이 개 기록을 말할 것 smalldatetime

TIME datatype...

또는 저장 시작 시간과 종료 시간 데이터 구조를 변경하십시오.

+0

[SQL 서버 비디오 지속 시간을 저장] 시작과 끝을 저장 가능한 중복 datetime은 예기치 않은 결과 (일광 절약 시간, 윤초)를 생성 할 수 있습니다. 정수를 사용하는 다른 대답을 사용하는 것이 좋습니다. – Aaroninus

2

나는 단지 초 수를 저장합니다. 일반적으로 두 개의 날짜를 저장하는 것으로 충분하지만 게임 자체 또는 세션별로 추적 할 수 있다고 생각합니다.

3

정수형을 사용하고 가장 작은 정밀도 단위 (이 경우 초)에 대해 수량을 저장하십시오. 귀하의 클라이언트 프로그램 코드는 그것을 포맷팅하는 것에 대해 걱정해야합니다. 따라서 두 샘플 값의 경우 저장된 데이터는 61801932입니다.

는 게임의 시작과 끝 시간을 저장하기 위해 더 좋을 수도 TimeSpan.FromSeconds().ToString()

+0

좋은 접근 방법. 나는 칼럼의 이름에 시간의 세분성을 포함 시켜서 스스로 문서화 할 것이다. 예 :'run_seconds_'. –

1

같은 것을 사용하고, 필요에 따라 즉시 시간을 계산합니다 값 (예) C 번호를 표시합니다. 그렇게하면 명시 적으로 기간을 업데이트하지 않고 시작 및/또는 종료 시간을 변경할 수 있습니다.

귀하의 질문에, 나는 int 데이터 형식을 사용하고 기간을 분으로 저장합니다. 분 단위로 저장하면 쉽게 시간 단위로 변환 할 수 있습니다. DATEDIFF 함수는 이미 INT를 반환하므로 추가 조작을 수행 할 필요가 없습니다.

DECLARE @TotalMinutes INT 
SELECT @TotalMinutes = DATEDIFF(MINUTE, StartTime, EndTime) 
관련 문제