SmallDateTime 시간 범위 검사
1505 단어 DateTime
여기 서 그것 의 시간 범 위 를 중점적으로 살 펴 보 자. 1900 - 01 - 01 부터 2079 - 06 - 06 까지.
먼저 시스템 의 코드 를 보 여 주세요. 그 중의 문 제 를 발견 할 수 있 습 니까?
SqlCommand command = new SqlCommand(sqlTemplate, conn);
//....
command.Parameters.Add(new SqlParameter("@LogClientTime", SqlDbType.SmallDate;
command.Parameters.Add(new SqlParameter("@LogServerTime", SqlDbType.SmallDate;
//....
foreach (var hourlySummaryData in _summaryData)
{
//....
command.Parameters["@LogClientTime"].Value =
hourlySummaryData.LogClientTime < SqlDateTime.MinValue ? SqlDateTime.MinValue : hourlySumma.Value.LogClientTime;
command.Parameters["@LogServerTime"].Value =
hourlySummaryData.LogServerTime < SqlDateTime.MinValue ? SqlDateTime.MinValue : hourlySumma.Value.LogServerTime;
//....
command.ExecuteNonQuery();
}
시스템 의 시간 이 hourly Summary Data. LogClient Time 의 상한 선 을 검사 하지 않 았 습 니 다. bug 입 니 다. 하지만 이것 은 제 가 말 하고 싶 은 것 이 아니 라 bug 가 있 습 니 다.
SqlDateTime. MinValue 의 값 은 1753 / 1 / 1 0: 00: 00 입 니 다. 문제 가 어디 에 있 는 지 아 시 죠?
. NET BCL 에는 1900 / 1 / 1 (SqlDateTime 의 SQLBaseDate 필드 와 같은 개인 적 인 필드 가 없습니다.)
따라서 사용 할 때 반드시 주의해 야 합 니 다. 만약 데이터베이스 에 SmallDateTime 을 사용 했다 면 범위 검 사 는 반드시 스스로 손 으로 써 야 합 니 다. SqlDateTime. MinValue 와 MaxValue 는 SmallDateTime 에 사용 되 는 것 이 아니 라 datetime 의 범위 검사 (1753 년 1 월 1 일부 터 9999 년 12 월 31 일 까지) 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
django에서 시간 범위에 따라 데이터베이스 조회웹 폼에서 사용자가 지정한 시간 범위를 가져와 데이터베이스에서 이 시간 범위 내의 데이터를 조회하는 간단한 기능을 소개합니다.데이터베이스의 모델은 다음과 같습니다. 우리가 폼에서 얻은 Request를 가정해 보세요....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.