如何在Sybase ASE 15.5中恢复`timestamp`值?

时间:2016-04-20 13:24:17

标签: java timestamp sybase-ase apache-metamodel

reading data来自Sybase ASE 15.5 databaseinserting的一个表data返回另一个目标Sybase ASE 15.5 database。所有sourcedestination数据都匹配而不是timestamp列。

正如我对timestamp列所了解的那样,它会自动更新:

  

每次插入或更新包含时间戳列的行时,   timestamp列会自动更新。一张桌子只能有   timestamp数据类型的一列。名为timestamp的列将   自动拥有系统数据类型时间戳。

来源:https://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Sybase-ASE-3/page/4/Data-Types

因此,当我将timestamp数据恢复到目标数据库时,它与实际数据库不匹配。

这是源表

的屏幕

enter image description here

以下是目的地表

的简短屏幕

enter image description here

如何恢复timestamp列的确切值?

仅供参考:

我正在使用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 个答案:

答案 0 :(得分:0)

你做不到。时间戳列将始终更新;这些列包含的值是“数据库时间戳”,它是ASE中事务机制的基础,并且对于每个插入或更新的行或数据库中的任何其他更改都会递增。 然而,“时间戳”这个名称具有误导性,因为它与现实世界的时间完全无关。它只是一个6字节的计数器,只会在数据库的生命周期内增加。

如果您想在这些列中使用实际时间,请使用数据类型“datetime”或“bigdatetime”。