在没有时间的情况下将数据存储为数据库中的yyyy-MM-dd?

时间:2014-01-14 08:52:59

标签: java sql postgresql date

如何在SQL数据库(postgres)中最好地存储格式为yyyy-MM-dd(没有时间声明)的字符串?

我后来想要将该字符串始终用作Date类型。我还想对数据库执行查询,以便为我提供该日期之前或之后的记录。

  • 我应该将其作为字符串存储还是作为日期类型存储在DB中?
  • 如果我将其存储为日期,在数据库中我会看到yyyy-MM-dd HH:mm:ss。我怎么能阻止时间宣告?

2 个答案:

答案 0 :(得分:3)

始终建议使用带时间戳的日期。如果您不需要,那么在存储时将其存储为00:00:00。(使用Sql Date作为没有时间戳的日期。)

使用业务逻辑来截断所需的时间和格式。您可以使用日期和大多数数据库中的服务层来更好地存储带有时间戳的日期。

答案 1 :(得分:2)

如果您不想存储时间组件,请使用DATE数据类型。它没有时间或时区组成部分,因此对于出生日期,就业开始/结束日期以及与时间无关的其他数据非常有用。

http://www.postgresql.org/docs/9.3/static/datatype-datetime.html

显示格式是应用程序的问题 - 只需使用正确的数据类型。但YYYY-MM-DD被记录为提供日期的最佳格式。