2017-02-21 3 views
1

의 기본값 그래서 레코드가 Obsolete로 표시된 날짜를 저장하는 DB2 테이블에서 사용되지 않는 변경 날짜라는 필드가 있습니다. create table 문에서이를 정의하는 방법을 알 수는 없습니다.DB2를 처리하는 방법

기본값을 null로 설정하면 채워지는 현재 날짜 인 기본값이 입력되어 현재 날짜에 레코드가 폐기되었음을 나타 내기 때문에 기본값으로 설정됩니다.

또한 NULL로 채우고 싶지 않습니다. 어떻게 이런 상황을 처리 할 수 ​​있을까요?

+0

널 (null)을 보유 할 수 있습니다. 당신은 이미 NULL과 CURRENT DATE를 없앴습니다. 그것들은 두 가지 논리적 인 선택 인 것 같습니다. 설정해야하는 특정 날짜를 이미 알지 못하면 잘못된 값이나 잘못된 날짜가됩니다. – user2338816

답변

1

날짜 필드를 사용하고있는 것으로 보입니다. 따라서 날짜 범위 형식의 첫 번째 유효한 날짜를 기본값으로 사용할 수 있습니다. 어떤 장소에서는 IBM이 0001-01-01을 널 (NULL)로 처리하지만 이는 4 자리 연도의 형식에서만 작동합니다. 다양한 날짜 형식이 될 것이라고 :

 
FORMAT       START  END 
4 digit years (e.g. *ISO)  0001-01-01 9999-12-31 
3 digit years (e.g. *CYMD)  1900-01-01 2899-12-31 
2 digit years (e.g. *YMD)  1940-01-01 2039-12-31 

날짜 필드는 그것은 우리가 기본값으로 사용한다 날짜 무엇을 추측 할 수있는 방법 명확하지 않다 유효한 날짜 또는

+0

DATE NOT NULL DEFAULT '0001-01-01'은 날짜 선언에 추가 할 계획입니다. 내 단서에 승인을 요청 했어. 보자. –

+1

@ user3311539,'DEFAULT '9999-12-31''이 더 나은 선택 일 수 있습니다 .... – Charles

+0

범위의 첫 번째 또는 마지막 날짜 사용은 상황에 따라 똑같이 좋은 선택입니다. 날짜가 범위의 끝점 인 경우 범위의 마지막 날짜를 기본값 '9999-12-31'으로 사용합니다. 그렇지 않으면 나는 전형적으로'0001-01-01'을 사용합니다. – jmarkmurphy