java - 如何最好地在数据库中存储时间戳或日期?

标签 java sql database

当我需要存储时间/日期信息时,如何最好地存储在数据库中?
如果我将它们存储为 String 表示形式,例如获取当前时间戳(例如使用 Date)并将 String 表示形式存储在数据库中是个好主意吗?
这方面的最佳做法是什么?有什么缺点?

最佳答案

最佳做法是在数据库中使用TIMESTAMPDATE 类型。所有主要数据库供应商都支持这些 SQL 标准数据类型。

除了性能和存储优化之外,您还将获得表现力,并且能够直接在数据库中使用大量日期时间操作函数和操作,具体取决于您使用的数据库。考虑比较日期、添加日期、添加日期间隔(例如明天是星期几)等...

注意...

  • 如果您使用的是 Oracle,请注意 DATE 还包含时间信息
  • 如果您使用的是 SQLite,请注意日期时间类型可能具有数字或文本亲和性。 IE。它们存储为数字或文本。
  • 如果您使用的是 SQL Server、Sybase(ASE 和 SQL Anywhere)、SQLite,TIMESTAMP 数据类型的方言特定版本称为 DATETIME(SQL服务器的TIMESTAMP实际上是一个VARBINARY(8))
  • 至少 H2、HSQLDB、MySQL、Sybase SQL Anywhere 同时支持 TIMESTAMPDATETIME 数据类型同义词。

关于java - 如何最好地在数据库中存储时间戳或日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9800592/

相关文章:

java - 有没有更好的实现方法?

java 轻量级调试器

Java 问题遍历类的树形图集合

sql - 如果不同的列为 true,则替换列的值

java - 如何从 HTML 输入读取 Excel 文件内容?

sql - Oracle ROWNUM 性能

sql - 在 SQL 数据库中存储 DICOM 图像的文件位置

java - 是否可以将数据库表与事务中的读取操作隔离开来?

java - 如何使用 android 在 SQLite 中添加更多列

database - 数据库怎么处理内存放不下的数据表?