假设我在 Java 应用程序中有一个 type 字段Instant
并将其作为 type 存储在 PostgreSQL 数据库中DATE
。
例如,如果我保存21.02.2019 14:03:59
它将被存储为21.02.2019
但是当我从数据库中读取时它将如何重新翻译?
那将会:
21.02.2019 00:00:00.000
或者21.02.2019 23:59:59.000
?
PS。我知道我应该Timestamp
改用:)
假设我在 Java 应用程序中有一个 type 字段Instant
并将其作为 type 存储在 PostgreSQL 数据库中DATE
。
例如,如果我保存21.02.2019 14:03:59
它将被存储为21.02.2019
但是当我从数据库中读取时它将如何重新翻译?
那将会:
21.02.2019 00:00:00.000
或者21.02.2019 23:59:59.000
?PS。我知道我应该Timestamp
改用:)
这取决于你如何阅读它。Instant
和 SQLDATE
是不等价的,而且我不知道任何可靠的库甚至可以让您DATE
阅读Instant
. 如果您编写自己的代码允许这样做,那么您可以让它以您想要的任何方式填充小时、分钟、秒和毫秒,即使它没有意义(所以您问题的真正答案是“都不是”,除非您明确编写代码以转换java.sql.Date
为java.time.Instant
)。
如果您正在设计将瞬间存储为日期的软件,那么您的设计就有缺陷。LocalDate
在 Java 端或TIMESTAMP
数据库中使用。