Это зависит от вашей платформы и версии DB2. Временные метки в DB2, используемые для всех, имеют 6-значную точность для частичной части секунды. В строковой форме «ГГГГ-ММ-ДД-ЧЧ: ММ: SS.000000»
Однако DB2 LUW 10.5 и DB2 для IBM i 7.2 поддерживают от 0 до 12 цифр точности для части секунд доли. В строковой форме вы могли бы иметь от «ГГГГ-ММ-ДД-ЧЧ: ММ: СС» значение «ГГГГ-ММ-ДД-ЧЧ: ММ: SS.000000000000».
Точность по умолчанию - 6, поэтому, если вы укажете временную метку без точности (длины), вы получите шестизначную точность. В противном случае вы можете указать точность от однако о до 12.
create table mytable (
ts0 timestamp(0)
, ts6 timestamp
, ts6_also timestamp(6)
, ts12 timestamp(12)
);
Обратите внимание, что в то время как внешняя (не совсем строка) формат СУБД поверхность может варьироваться от 19 до 32 байт. Внутренний формат, в котором хранится TS, может не совпадать. В DB2 для IBM i, по крайней мере, внутренний формат хранения TS-поля занимает 10 байтов независимо от точности. Я подозреваю, что то же самое верно для других платформ.
db2 timestamps имеют фиксированную длину 26, формат выглядит следующим образом: «0000-00-00-00.00.00.000000» –
в моей БД говорится «10». Итак, вопрос в том, как изменить его на более высокое значение, которое составляет 26? –
, потому что он сохраняется в упакованном формате, он не сохраняется в этом формате в базе данных, но это то, что вы должны получить, когда вы его читаете. –