java - 在 JDBC 中将时间戳存储为 Long .. 好还是坏?

标签 java sql datetime jdbc

我正在考虑使用 long 数据类型来存储通过 System.currentTimeMillis 生成的时间戳。

我想将此值作为 BIGINT 存储在关系数据库中。 这是一个好主意吗?

我的主要目标是保持 DBMS 独立。因此我可以在不更改代码的情况下转移到 MySQL 或 H2,其次使其与时区无关。

如果这是个坏主意,什么是更好的方法?

最佳答案

这是个好主意,已成功应用于许多项目。

您可能会考虑的一个问题是,您是要在应用服务器上还是在数据库服务器上生成时间戳。问题是您的各种应用程序服务器对时间的想法略有不同——如果您希望整个应用程序的时间顺序保持一致,您可能会决定使用数据库作为时间戳的唯一真实来源。这取决于您的时间戳的使用方式以及您的应用程序对时间顺序噪声的容忍度。

当然,似乎每个数据库供应商都有不同的函数来获得 System.currentTimeMillis 的等价物,这显然违反了您的状态目标之一。

关于java - 在 JDBC 中将时间戳存储为 Long .. 好还是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706875/

相关文章:

c# - 转换 DateTime.Now.Month;作为字符串值

java - 通过流按键排序的集合

java - 当我从 Android 迁移到 AndroidX 时,在我的项目中实现 google play 服务时出错。可能的解决方案是什么?

java - 为什么我会收到 "Too many open files"错误?

java - 在 JCR 节点中保存数据,我做错了什么?

mysql - 即使在 MYSQL 表中互换时,如何使两行唯一?

mysql - 查找未标记以下标签的项目

php - 连接两个表,但连接键位于查询字符串中

java - 如何创建自定义日期?

php - 为什么 DateTime::diff 在这些日期之间返回 0 天?