2013-07-23 3 views
0

null로 설정하면 DB2가 날짜 필드에 01/01/0001을 쓰는 이유는 무엇입니까?DB2에 날짜 필드를 null로 설정할 수 있습니까?

해당 필드를 NULL로 설정할 수 있습니까? DB2가 01/01/0001로 설정하면 유효한 날짜가 아니기 때문에 내 AD 레코드 세트가 폭발합니다.

내가 잘못 했나요?

+2

사용중인 DB2 버전은 무엇입니까? 날짜 필드가 Null 인 경우 날짜 필드를 null로 설정할 수 있습니다. –

+0

필드가 "널이 아님"으로 정의되었을 수 있습니다. –

답변

1

물론 날짜 열을 NULL 값으로 설정할 수 있습니다. 어떻게 할거야?

당신이 사용하는 클라이언트가 당신을 괴롭 히거나 테이블에 트리거되어 열의 NULL 값을 사용자가 보는 값으로 변경합니다.

0
  1. 예 날짜 열에 null을 삽입 할 수 있습니다. 아래는 null 값을 삽입하는 구문입니다 (버전에 따라 다름). 타임 스탬프는 열 유형이므로 날짜와 교환 할 수 있습니다. DB2 버전에 따라 다른 방법이있을 수 있습니다. datetime 필드의 필드 스펙이 널을 허용하도록 설정되지 않은 경우에는 작동하지 않습니다.

    INSERT INTO [테이블 이름] (col1, col2, col3)로 값 1, 값 [출처 표]에서 캐스트 (타임 스탬프 NULL)을 선택

  2. 당신은 01/01/0001을보고있는 이유 DB2가 널 (null)을 값으로 변환하려고 시도하고 01/01/0001이 날짜 필드의 디폴트이기 때.입니다.

+1

Er, no. 그가 ** 오류 **를 얻는다면, 테이블에 어떤 것도 삽입되지 않을 것입니다. 이 is_is_null 값을 삽입하기위한 정확한 구문이지만, 실제 문제처럼 들리지 않습니다 (즉, ORM에서 삽입되는 경우 일반적으로 캐스팅을 처리합니다). 일부 DB2 버전은 날짜와 타임 스탬프 (!)를 암시 적으로 캐스팅/비교할 수 없습니다. 아마도 로컬 시간 대 글로벌 시간에 대한 질문을 피할 수 있습니다. 시간 소인을 지정했다면 어쨌든 데이트하지 않으시겠습니까? 우리는 더 많은 정보를 얻었어야했지만 코멘트는 정확할 것입니다 - "NOT NULL"로 정의됩니다. –

+0

@ Clockwork-Muse 그가 사용하고있는 것을 제공하지 않았기 때문에 그의 SQL이 오류를 일으키는 정확한 이유를 알 수 없습니다. DB2/AS400의 버전에 따라 문제가 해결 될뿐입니다. 나는 또한 그의 모든 질문에 완전히 대답하기 위해 나의 대답을 업데이트했다. – Mike

관련 문제