所有这些不同的日期类型让我困惑。有日期时间,时间戳,日期,谁知道还有什么。如果我需要跟踪日期,但也希望提出“在06/01/2010和06/30/2010之间查找记录”的查询,我应该使用哪种字段类型?目前,我使用“日期”,因为我不需要时间戳或时间本身。Mysql日期字段,为什么有这么多选项?
我认为postgresql只有一个字段类型的日期,但它可以通过SQL函数格式化,我相信。 :-)
所有这些不同的日期类型让我困惑。有日期时间,时间戳,日期,谁知道还有什么。如果我需要跟踪日期,但也希望提出“在06/01/2010和06/30/2010之间查找记录”的查询,我应该使用哪种字段类型?目前,我使用“日期”,因为我不需要时间戳或时间本身。Mysql日期字段,为什么有这么多选项?
我认为postgresql只有一个字段类型的日期,但它可以通过SQL函数格式化,我相信。 :-)
日期为您要求的正确的。
为什么这么多选项?那么,一个数据库可能只有一种类型,让我们拿BLOB - 但它不会很有用。如果你的系统知道它处理的是什么类型的数据会更好,所以它可以为你提供特殊的功能(就像你说的,在给定的日期之间找到日期)。
不同类型:
对于您给出的示例,日期将正常工作。如果您认为将来可能需要时间,您显然不会获得该信息,并且日期时间也适用于您的目的,但如果您确定,没有理由不使用日期。
DATE
和DATETIME
/TIMESTAMP
之间的差异应该足够清楚 - 如果您不需要时间信息,请使用DATE
。至于DATETIME
与TIMESTAMP
,有一个区别:Should I use field 'datetime' or 'timestamp'?
如果你只是想有一个日期,没有时间戳只是使用日期。
如果您想知道TIMESTAMP和DATETIME之间的选择。 Should I use field 'datetime' or 'timestamp'?解答它
当我第一次开始使用mysql编程时,遇到一篇文章说我需要时间戳或日期时间来查找两个日期之间的范围。这是真的还是将DATE工作发现? – luckytaxi 2011-06-16 21:04:20
对于日期算术或BETWEEN搜索,DATE可以很好地工作。 DATE只是TIME的特殊DATETIME,时间为0:00:00,占用的字节更少...... – Konerak 2011-06-16 22:02:44