게임 기간을 저장하고 싶습니다. 1:43:00
또는 0:32:12
과 같은 것입니다.시간을 데이터베이스에 저장하려면 어떤 데이터 형식을 사용해야합니까?
Microsoft SQL Server 2008 R2를 사용하는 경우 어떤 데이터 형식을 선택해야합니까?
게임 기간을 저장하고 싶습니다. 1:43:00
또는 0:32:12
과 같은 것입니다.시간을 데이터베이스에 저장하려면 어떤 데이터 형식을 사용해야합니까?
Microsoft SQL Server 2008 R2를 사용하는 경우 어떤 데이터 형식을 선택해야합니까?
다음 중 하나를 smalldatetime
그래서 당신이 필요없이 24 시간 이상을 갈 수있는 옵션이 나는 매장이 개 기록을 말할 것 smalldatetime
로
또는 저장 시작 시간과 종료 시간 데이터 구조를 변경하십시오.
[SQL 서버 비디오 지속 시간을 저장] 시작과 끝을 저장 가능한 중복 datetime은 예기치 않은 결과 (일광 절약 시간, 윤초)를 생성 할 수 있습니다. 정수를 사용하는 다른 대답을 사용하는 것이 좋습니다. – Aaroninus
나는 단지 초 수를 저장합니다. 일반적으로 두 개의 날짜를 저장하는 것으로 충분하지만 게임 자체 또는 세션별로 추적 할 수 있다고 생각합니다.
정수형을 사용하고 가장 작은 정밀도 단위 (이 경우 초)에 대해 수량을 저장하십시오. 귀하의 클라이언트 프로그램 코드는 그것을 포맷팅하는 것에 대해 걱정해야합니다. 따라서 두 샘플 값의 경우 저장된 데이터는 6180
및 1932
입니다.
TimeSpan.FromSeconds().ToString()
좋은 접근 방법. 나는 칼럼의 이름에 시간의 세분성을 포함 시켜서 스스로 문서화 할 것이다. 예 :'run_seconds_'. –
같은 것을 사용하고, 필요에 따라 즉시 시간을 계산합니다 값 (예) C 번호를 표시합니다. 그렇게하면 명시 적으로 기간을 업데이트하지 않고 시작 및/또는 종료 시간을 변경할 수 있습니다.
귀하의 질문에, 나는 int 데이터 형식을 사용하고 기간을 분으로 저장합니다. 분 단위로 저장하면 쉽게 시간 단위로 변환 할 수 있습니다. DATEDIFF 함수는 이미 INT를 반환하므로 추가 조작을 수행 할 필요가 없습니다.
DECLARE @TotalMinutes INT
SELECT @TotalMinutes = DATEDIFF(MINUTE, StartTime, EndTime)
(http://stackoverflow.com/questions/254410/storing-video-duration-time-in-sql-server) –