可用版本:Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

日期作为时间戳

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

Oracle数据库不知道SQL标准DATE类型(YYYY-MM-DD)。它的厂商特定DATE类型实际上是一个TIMESTAMP(0),即一个精度为零小数秒的TIMESTAMPYYYY-MM-DD HH24:MI:SS)。由于历史原因,许多遗留的Oracle数据库不使用TIMESTAMP数据类型,而是使用DATE数据类型来表示时间戳。在这种情况下,客户端应用程序也需要将这些列视为时间戳。

如果将模式升级到正确的TIMESTAMP用法不可行,并且在每个列的基础上使用数据类型重写也不可行,那么此标志是正确的激活选项。它将从Oracle类型系统中删除DATE类型(至少就jOOQ代码生成器而言),并假装所有此类列实际上都是TIMESTAMP类型。以下是如何激活此标志

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <dateAsTimestamp>true</dateAsTimestamp>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参阅配置XSD独立代码生成以及Maven代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withDateAsTimestamp(true)
    )
  )

有关更多详细信息,请参阅配置XSD程序化代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      isDateAsTimestamp = true
    }
  }
}

有关更多详细信息,请参阅配置XSDGradle代码生成

configuration {
  generator {
    database {
      dateAsTimestamp = true
    }
  }
}

有关更多详细信息,请参阅配置XSDGradle代码生成

// The jOOQ-codegen-gradle plugin has been introduced in version 3.19.
// Please use the official plugin instead of the third party plugin that was recommended before.

此标志将在应用任何其他数据类型相关标志之前应用,包括强制类型

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo