문제
데이터베이스에 저장 한 2 배 사이의 시간 범위를 계산하고 싶습니다. 그래서 말 그대로 나는 두 값 사이의 시간을 알고 싶습니다.
14:10:20 - 10:05:15 = 02:05:05
결과는 02:05:05입니다.
C#을 사용하여 어떻게이를 달성 할 수 있습니까?
14:10:20은 데이터베이스에 저장 한 형식입니다.
해결책
두 시간 값을 TimesSpan 변수로 읽은 다음 .Subtract()
더 큰 Times -Span 변수에서 TimesPAN 결과를 얻습니다.
예를 들어 TimeSpan difference = t1.Subtract(t2);
.
다른 팁
첫 번째 단계는 데이터베이스에 저장된 타임 값을 .NET에 저장하는 것입니다. DateTime
스트러크.
데이터베이스에서 SQL-DateTime 값으로 저장 된 경우 직접 얻을 수 있습니다. DateTime
. 다음과 같이 보일 것입니다.
SQLCommand getTimeCommand = new SQLCommand("SELECT time FROM table", dbConnection);
SQLDataReader myReader = getTimeCommand.ExecuteReader();
while (myReader.Read())
{
DateTime time = myReader.GetDateTime(0);
}
myReader.Close();
구현이 다를 수 있습니다. MSDN 라이브러리의 ADO.NET 문서를 참조하십시오.
이미 시간을 나타내는 문자열이 있다면 문자열을 DateTime
정적 방법을 사용합니다
DateTime.Parse
또는
DateTime.ParseExact
귀하의 경우 사용해야 할 수도 있습니다 ParseExact
, PE는 문자열을 읽는 방법을 정의하는 형식 문자열과 함께 제공 될 수 있습니다. 예제는 MSDN 라이브러리에서 찾아야합니다.
.NET의 기간은 a 내부에 저장됩니다 TimeSpan
구조. DATETIME 사이에서 경과 시간을 얻는 것은 쉽습니다.
DateTime time1, time2; //filled with your timevalues from the db
TimeSpan elapsed = d2 - d1;
elapsed
이제 둘 사이의 시간대가 포함되어 있습니다 DateTimes
. 구조물이 액세스 할 수있는 여러 회원이 있습니다. TimeSpan
. MSDN-Library를 살펴보고 필요한 것을 찾으십시오.
DateTime 객체는 "-"연산자를 지원하므로 그러한 객체에 시간을 읽고 빼낼 수 있습니다. 테스트하려면 다음을 확인하십시오.
DateTime then = DateTime.Now;
Thread.Sleep(500);
DateTime now = DateTime.Now;
TimeSpan time = now - then;
MessageBox.Show(time.ToString());