所以我正在寻找在我的SQL数据库中存储日期,我不知道最有效的方式是什么。我想到了两种不同的方法。最高效的数据库日期存储方法?
首先,人们将能够为每一天设置一定的价格。
例如:
2011年3月8日:$ 1
2011年3月9日:2011年3月10,$ 2
:$ 5
对于我的数据库我是考虑存储一个UNIX时间戳或在单独的字段中存储月份,日期和年份。
第一种方法:
Unix时间戳
优点
- 仅一个字段
缺点
- 必须转换日期时间戳
- 有
- 容易出错的搜索
月/日/年
优点开始和结束日期之间进行搜索
- 更容易搜索
缺点
- 更多领域
- 占用更多的空间
- 要存储的数据的很多,所以可以在数据库放缓。
有了上述信息,您会有什么建议? (我可以澄清是否有任何这是不明确。)
单独的字段? “DATE”类型有什么问题? – Jon 2011-03-09 01:57:31
我很想投降(但我不会:-),只是因为纯粹的“优化”(注意引号)的数量。我通常会为这些“建议”打击同事。 – 2011-03-09 02:09:04
请阅读http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html - 你可以看到,DATE(3字节),DATETIME(8字节)和TIMESTAMP(不是SQL 'spec,4个字节)涵盖了所有的“需求”,具体取决于业务需求。我怀疑在一个TIMESTAMP(和* DO NOT使用整数*)的情况下,DATETIME的额外4个字节在攻击性基准测试中甚至会显而易见。 – 2011-03-09 02:15:24