甲骨文。插入 DATE 字段在不同的环境中给出不同的结果

问题描述 投票:0回答:0

你好

我有:

  • 数据库甲骨文
  • oracle 中的字段类型 - DATE
  • 适用于:Jboss、EJB、Hibernate

当我的应用程序将数据插入数据库时,我得到两个不同的结果:

我用于收集数据的Sql查询:

SELECT ID, KEY, TO_CHAR(STATUS_DATE, 'YYYY-MM-DD HH24:MI:SS') AS DATE_WITH_TIME FROM DATA dt; 
  • 生产:在 DATE_WITH_TIME 字段中,我总是得到正确的日期但错误的时间 - 2023-03-20 00:00:00
  • 测试:在 DATE_WITH_TIME 字段中,我得到 2023-03-20 18:20:23 - 获取当前日期时间

测试和生产的设置是相同的 - 数据库/应用程序/依赖项的版本,等于字段类型等。同时插入到生产中的另一个表可以正常工作。

问题: 当我在字段 DATE 中插入数据时,两种环境中的什么因素可以对行为施加这种变化? 可能隐藏在 Oracle 或 Jboss 中。

UPD1:
我正在处理遗留问题,我知道它需要重构,但现在我想知道为什么这个解决方案对生产环境和测试环境的工作方式不同。

附加信息:

  • 设置数据到字段 -
    setDate(new Timestamp(new Date().getTime()))
    -
  • NLS_DATE_FORMAT = DD.MM.RR -> 用于生产和测试
  • 实体字段类型:
  @Temporal(TemporalType.DATE)
  @Column(name="DATE")
  private Date date;
java oracle hibernate jboss
© www.soinside.com 2019 - 2024. All rights reserved.