Java 具有相同数据的两个数据库报告的时间不同

Java 具有相同数据的两个数据库报告的时间不同,java,oracle,vert.x,Java,Oracle,Vert.x,我住在亚利桑那州,MST没有DST,如果有必要的话 我有两个不同的Oracle数据库,它们存储假日和周末的列表。 存储数据的列是日期格式,没有时间值 但当我使用API调用2021年1月假日的第一个db时,它会在午夜报告假日日期。但当我在第二个db上调用2021年1月的所有假日时,它将其报告为所有假日日期为上午7点 db使用的查询是 SELECT * FROM CLPUSER.HOL_DT WHERE TRIM(HOL_DT) >= ? AND TRIM(HOL_DT) <= ?"

我住在亚利桑那州,MST没有DST,如果有必要的话

我有两个不同的Oracle数据库,它们存储假日和周末的列表。 存储数据的列是日期格式,没有时间值

但当我使用API调用2021年1月假日的第一个db时,它会在午夜报告假日日期。但当我在第二个db上调用2021年1月的所有假日时,它将其报告为所有假日日期为上午7点

db使用的查询是

SELECT *  FROM CLPUSER.HOL_DT WHERE TRIM(HOL_DT) >= ? AND  TRIM(HOL_DT) <= ?";
DB2


编辑:在我了解VertxJDBC如何从下面的jdbc库中读取代码之前,我只是对代码进行了调试,它从jdbc中读取holu DT作为时间戳,而db将其存储为日期格式。当它这样做时,它会在UTC转换为ZoneDateTime,并给出它的时间值。

结果是有些不同。当在一个环境中重新部署代码时,它开始像另一个环境一样显示“2021-01-02T07:00:00Z”。我的工作原理是,出于某种原因,其中一个POD被设置为UTC时间,但现在是MST时间

另外,整个一个条目出现故障是因为它没有按功能排序,当我将所有这些都插入Oracle时,我忘记了第一个条目,它被放在了末尾


“”\_(ツ)_/“

为什么
trim()
?这会将日期强制为字符串,这会使事情变得混乱。那么,您如何设置绑定值,如何使用
getTimestamp
检索值?然后如何将其转换为JSON?DB时区是什么?(日期值确实有时间-我想你只是说它们都是午夜?)你真的确定两个DBs中的列都是日期吗?看起来其中一个可能实际上是带有[local]的时间戳时区。刚刚检查,可以确认,两个数据库都使用日期数据类型。那么,两个环境中的情况有所不同;我知道您说过两端的所有内容都是MST,但这似乎不可能是真的。一路上的某个地方,人们正在确定它不是-可能是UTC-可能是运行时更改,甚至可能是从配置更改从前面的另一个DB表中提取。实际上,您所能做的就是尽可能多地转储环境信息,并设置时间戳,看看有什么不同。
"publicHolidayList": [

"holidayDate": "2021-01-01T00:00:00Z",
"holidayDate": "2021-01-02T00:00:00Z",
"holidayDate": "2021-01-03T00:00:00Z"
...
]
"publicHolidayList": [
"holidayDate": "2021-01-02T07:00:00Z",
"holidayDate": "2021-01-03T07:00:00Z"
...
"holidayDate": "2021-01-01T07:00:00Z" //appears at bottom
]