2010-03-12 3 views
0

시간 Datetime 유형의 데이터베이스에서 두 필드로 시작 시간과 종료 시간을 갖기 때문에 사용자가 선택한 시작 시간과 종료 시간을 시작 시간과 종료 시간 간격에 포함시키지 않아야합니다. 데이터베이스에 이미 있습니다. 이 검증을 수행하는 방법.시간 간격은 C#

+1

나는 당신이 무엇을 요구하고 있는지 잘 모르겠습니다. 사용자가 지정한 datetime이 데이터베이스의 두 범위 내에 있는지 알고 싶습니까? C# 또는 실제로 SQL에서 검사하고 싶습니까 (데이터베이스가 SQL이라고 가정)? – NibblyPig

+0

지금까지 시도한 코드를 게시 할 수 있습니까? – JohnFx

답변

4

먼저, 아직 읽지 않은 경우 yourStartTime < yourEndTime을 확인하십시오.

그런 다음 당신은 당신의 데이터베이스에서이 쿼리를 실행할 수 있습니다

SELECT COUNT (*) FROM [table] 
WHERE [table].EndTime > yourStartTime 
     AND [table].StartTime < yourEndTime 

를 카운트 당신은 유효성 검사에 실패했습니다 0이 아닌 경우.

+1

* : –

+0

Bah 주위에 대괄호를 추가하면 제대로 SQL을 기억할 수 없다는 것을 알았습니다 .-D Thx! –

+1

이제 투표가 취소 된 이유는 무엇입니까? : - | –

1

TimeSpan ts = endTime.Subtract(startTime);을 사용하면 2 개의 날짜가 달라집니다. 그런 다음 데이터베이스에서 결과를 선택하면이 값을 비교하기 위해 DATEDIFF 메소드를 사용할 수 있습니다.

질문을 올바르게 이해했다면.

+0

시간대는 어떤 용도로 사용됩니까? –

+0

몇 일, 시간, 분 등 경과했는지 확인하는 데 사용할 수있는 좋은 방법이 있습니다. –

+0

네,하지만 두 날짜 사이의 기간과 그 범위가 겹치는 지 여부와의 관련성은 없습니다. –