Db2 导出的时间戳在加载回DB后正在更改值

Db2 导出的时间戳在加载回DB后正在更改值,db2,liquibase,Db2,Liquibase,我的场景是从真实的DB2导出数据,然后将其加载回集成测试。我正在使用liquibase(v3.5.3)来管理它 我发现时间戳值在这个周期中发生了变化。导出时间戳值时,我可以在变更日志文件中看到它为“2018-06-28 22:47:38.816343”。之后,当我将其加载回DB2时,它变成“2018-06-28 23:01:14.343” 原因是“816343”部分不被视为秒的一部分,而是被视为毫秒量,并且该量被添加到结果时间戳中 在测试中,通过比较这些时间戳来制定业务决策标准。我需要他们平等

我的场景是从真实的DB2导出数据,然后将其加载回集成测试。我正在使用liquibase(v3.5.3)来管理它

我发现时间戳值在这个周期中发生了变化。导出时间戳值时,我可以在变更日志文件中看到它为“2018-06-28 22:47:38.816343”。之后,当我将其加载回DB2时,它变成“2018-06-28 23:01:14.343”

原因是“816343”部分不被视为秒的一部分,而是被视为毫秒量,并且该量被添加到结果时间戳中

在测试中,通过比较这些时间戳来制定业务决策标准。我需要他们平等

如有任何想法和建议,将不胜感激

复制的步骤如下:

1.创建一个包含内容的文件“01_test_data_to_setup.xml”

2.使用liquibase update命令执行上述变更日志文件 liquibase.bat--driver=com.ibm.db2.jcc.DB2Driver--logLevel=info--classpath=~jdbc driver path here~--changeLogFile=01_test_data_to_setup.xml--url=jdbc:db2:~jdbc url here~--defaultSchemaName=~schema name here~--username=~user name here~--password password here~update

3.从数据库导出数据 liquibase.bat--driver=com.ibm.db2.jcc.DB2Driver--logLevel=info--classpath=~jdbc driver path here~--changeLogFile=db2\u exported\u test\u data.xml--url=jdbc:db2:~jdbc url here~--defaultSchemaName=~schema name here~--username=~user name here~--password password here~--diffTypes=“data”generateChangeLog includeObjects=“table:TT”

因此,您将拥有“db2\u导出的\u test\u data.xml”文件



我猜这是Liquibase中的一个类似于这个的bug

或者您的数据类型是目标表上的时间戳(3)