2017-02-21 26 views
1

Итак, у меня есть поле, называемое устаревшей датой изменения в таблице DB2, в которой хранится дата, когда запись была отмечена как устаревшая. Я не могу понять, как определить это в инструкции create table.Как обращаться с DB2 Значение по умолчанию для даты

Если я даю по умолчанию не null, он будет вводить значение по умолчанию, которое является текущей датой, которую я не хочу заполнять, потому что если она будет заполнена, это означает, что запись была устаревшей в текущую дату.

Кроме того, я не хочу заполнять NULL. Итак, как я могу справиться с этой ситуацией?

+0

Это не ясно, как мы можем догадаться, что датировать следует использовать по умолчанию. Вы уже удалили NULL и CURRENT DATE, и они кажутся двумя логическими вариантами. Все остальное будет либо недопустимым, либо неверным, если вы уже не знаете определенную дату, которая должна быть установлена. – user2338816

ответ

1

По-видимому, вы используете поле даты, поэтому вы можете использовать первую действительную дату в диапазоне дат формата как значение по умолчанию. В некоторых местах IBM обрабатывает 0001-01-01 как нулевую дату, но это работает только для форматов с 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