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

Jim*_*Jim 4 java sql database

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

Luk*_*der 15

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

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

注意...

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