복붙노트

[SQL] 날짜 시간 데이터 유형에 DATETIME2 데이터 형식의 변환 범위를 벗어난 결과?

SQL

날짜 시간 데이터 유형에 DATETIME2 데이터 형식의 변환 범위를 벗어난 결과?

나는 응용 프로그램 일하고는 날짜 선택기를 포함하고 내가 아주 오래된 값 또는 지금까지 내가이 예외를 슬로우 데이터베이스에 서버를이 값을 저장하려고하면 미래에 그 피커의 시간을 설정하면, 그것의 원인은 무엇인가?

해결법

  1. ==============================

    1.9999 년 1 월 1 일부터 12 월 31, 1753 : 날짜 시간 범위를 가지고

    9999 년 1 월 1 일부터 12 월 31, 1753 : 날짜 시간 범위를 가지고

    0001-01-01 9999-12-31를 통해 : DATETIME2는 범위가

    당신이 1753 전에 날짜를 입력하는 경우, 그래서 테이블의 필드 유형 날짜 시간의 때이 오류를 얻을 것입니다.

  2. ==============================

    2.엔티티 프레임 워크는 값 {01/01/0001 0시 0분 0초}의 분야에 대한 기본 날짜를 추가하고이 외부 SQL 날짜 세대의 범위입니다. 그래서 그것이 작동되도록하기 위해, 우리는 기본 날짜를 생성하지 EF 요청해야, 우리는 그 클래스의 모델에서 다음을 수행하여 널 (NULL) 입력 할 수 있습니다.

    엔티티 프레임 워크는 값 {01/01/0001 0시 0분 0초}의 분야에 대한 기본 날짜를 추가하고이 외부 SQL 날짜 세대의 범위입니다. 그래서 그것이 작동되도록하기 위해, 우리는 기본 날짜를 생성하지 EF 요청해야, 우리는 그 클래스의 모델에서 다음을 수행하여 널 (NULL) 입력 할 수 있습니다.

    이 경우 디폴트 값은 EntityFramework으로 LastLoggedIn 필드에 생성됩니다. datebase에서이 필드가 null 값을 취할 수 있다면, 우리는 모델의 때라도을 수행하여 널 (NULL) 입력 할 수 있습니다 의미

     [Display(Name = "LastLoggedIn")]
            public DateTime? LastLoggedIn { get; set; }
    
  3. ==============================

    3.

    Products prd = new Products();            
    prd.CreatedDate = DateTime.Now;
    

    당신은 위와 같이 추가 할 수 있습니다

  4. ==============================

    4.이 오류는 잘못 컨트롤러 액션의 바인드 목록에서 필드 이름을 철자가 발생할 수 있습니다. 내가 생각했던대로 날짜 필드가 바인딩되지 이후 내 상황에서, 날짜 범위 날짜의 부족을 디폴트되었다.

    이 오류는 잘못 컨트롤러 액션의 바인드 목록에서 필드 이름을 철자가 발생할 수 있습니다. 내가 생각했던대로 날짜 필드가 바인딩되지 이후 내 상황에서, 날짜 범위 날짜의 부족을 디폴트되었다.

  5. from https://stackoverflow.com/questions/7386360/the-conversion-of-a-datetime2-data-type-to-a-datetime-data-type-resulted-in-an-o by cc-by-sa and MIT license