java - 将日期存储在数据库中是 Java 的最佳实践吗?

标签 java sql mongodb date timestamp

我这样做的原因是,在任何数据库中存储为日期对象的日期往往以特定格式编写,这可能与您需要在前端呈现给用户的内容大不相同。我还认为,如果您的应用程序从不同类型的数据存储中提取信息,这将特别有用。一个很好的例子是 MongoDB 和 SQL 日期对象之间的区别。

但是,我不知道这是否是推荐的做法。我应该继续将日期存储为 long(以毫秒为单位的时间)还是日期对象?

最佳答案

关于 MongoDB,我不能代表它,但在 SQL 数据库中,不,这不是最佳实践。这并不意味着可能没有偶尔的用例,而是“最佳实践”没有。

将它们存储为日期,将它们检索为日期。您最好的选择是设置您的数据库以将它们存储为 UTC(松散地,“GMT”),以便数据是可移植的,并且您可以根据需要使用不同的本地时间(例如,如果数据库由地理上不同的用户使用) ,并在应用层处理从 UTC 到本地时间的任何转换(例如,通过 Calendar 或第三方日期库)。

将日期存储为数字意味着您的数据库难以报告、运行临时查询等。我犯过一次错误,如果没有真正充分的理由,我不会重复. :-)

关于java - 将日期存储在数据库中是 Java 的最佳实践吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13303676/

相关文章:

sql - Postgres 限制参数,默认为无限

mongodb - Mongoose - 更新模型的实例方法,这是好的做法吗?

node.js - MongoDB/Mongoose 索引使查询更快还是变慢?

java - 如何将 BufferedImage 转换为 int[]?

sql - Oracle - 更新连接 - 非键保留表

java - Android 中是否有播放、暂停、倒带、快进方法?

sql - 转换时间戳的任何更好的方法(HH :mm:ss) to Seconds in Hive

mongodb - 如何使用 MongoDb $gte 和 $lte 将日期和时间保存为单独字段上的字符串

java - 实现类似 "Eclipse About Window"的窗口

java - 计算 Spring MVC 容器中 Activity HTTP 请求的数量