Как восстановить значение `timestamp` в Sybase ASE 15.5?

Я readingdata из одной таблицы Sybase ASE 15.5database а также inserting тот data обратно в другую цель Sybase ASE 15.5database, Все source а также destination данные сопоставлены вместо timestamp колонка.

Как то, что я знаю о timestamp столбец, что он обновляется автоматически:

Каждый раз, когда строка, содержащая столбец отметки времени, вставляется или обновляется, столбец отметки времени автоматически обновляется. В таблице может быть только один столбец типа метки времени. Столбец с именем timestamp автоматически будет иметь метку времени системного типа.

Источник: https://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Sybase-ASE-3/page/4/Data-Types

Поэтому, когда я восстанавливаю timestamp данные обратно в целевую базу данных не совпадают с фактической.

Вот экран, краткий исходной таблице

Вот экран, короткий к Таблице назначений

Как восстановить точное значение метки времени столбца?

FYI:

я использую Apache Meta-model запросить данные из исходной таблицы и восстановить эти данные обратно в целевую базу данных.As you can see timestamp is an array of bytes so I am extracting data as an array of bytes and restore it again as array of bytes but the value timestamp column is being changed when restore,

1 ответ

Решение

Ты не можешь Столбец метки времени всегда будет обновляться; это значение, которое содержат эти столбцы, является "отметкой времени базы данных", которая лежит в основе механизма транзакций в ASE и увеличивается на единицу для каждой вставленной или обновленной строки или любого другого изменения в базе данных. Однако название "временная метка" вводит в заблуждение, поскольку не имеет абсолютно никакого отношения к реальному времени. Это всего лишь 6-байтовый счетчик, который увеличивается только в течение срока службы базы данных.

Если вы хотите, чтобы в этих столбцах отображалось реальное время, используйте тип данных datetime или bigdatetime.

Другие вопросы по тегам