Mysql日期字段,为什么这么多选项?

时间:2011-06-16 20:52:08

标签: mysql

所有这些不同的日期类型让我感到困惑。有日期时间,时间戳,日期,谁知道还有什么。如果我需要跟踪日期,但也想提取“查找2010年6月1日至2010年6月30日之间的记录”的查询,我应该使用哪种字段类型?目前,我正在使用“日期”,因为我不需要时间戳或时间本身。

我认为postgresql只有一个日期的字段类型,但它可以通过我认为的SQL函数进行格式化。 : - )

4 个答案:

答案 0 :(得分:1)

日期对你想要的是正确的。

为什么有这么多选择?好吧,一个数据库可以只有一个类型,让我们拿BLOB - 但它不会很有用。如果你的系统知道它正在处理什么类型的数据,它会更好,所以它可以为你提供特殊的功能(比如,如你所说,找到给定日期之间的日期)。

不同的类型:

  • DATE只是一个日期,没有时间包括在内
  • DATETIME是带时间的日期
  • TIMESTAMP是带有时间的日期,每次更新行时都会自动更改。

答案 1 :(得分:1)

DATEDATETIME / TIMESTAMP之间的区别应该足够清晰 - 如果您不需要时间信息,请使用DATE。至于DATETIMETIMESTAMP,有一个区别:Should I use field 'datetime' or 'timestamp'?

答案 2 :(得分:0)

对于您提供的示例,日期将正常工作。如果您认为将来可能需要时间,您显然不会提供该信息,并且日期时间也适用于您的目的,但如果您确定,则没有理由不使用日期。

答案 3 :(得分:0)

如果您只想拥有日期而没有时间戳,请使用DATE。

如果你想知道TIMESTAMP和DATETIME之间的选择。 Should I use field 'datetime' or 'timestamp'?回答它