MySQL:当我已经有一个时间戳字段时,我应该使用“日期”和“时间”字段吗?

时间:2010-04-13 15:02:39

标签: mysql date time timestamp

我有一个MySQL表,其中有'date_added'(日期)字段,'time_added'(时间)字段和'timestamp'(int)字段。

之后我发现我可以将时间戳转换为日期或时间,所以这意味着我可以删除其他日期/时间字段并仅保留时间戳吗?

提前致谢

4 个答案:

答案 0 :(得分:1)

在您描述的布局中,我认为没有理由拥有多个字段。您可以使用DATETIME列,如果您喜欢DB magic,则可以使用TIMESTAMP列(不要将其与unix时间戳混淆)。表中的第一个TIMESTAMP可以配置为自动更新。

值得注意的是,某些平台在使用Unix时间戳时允许非常窄的日期范围(在1970年之前或2038年之后存储日期可能会有问题),而MySQL的DATETIME类型的范围从1000年到9999.

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

答案 1 :(得分:0)

是的!根据需要使用查询进行转换。

答案 2 :(得分:0)

是的,请记住32位时间戳将耗尽20年内的值。

答案 3 :(得分:0)

你可以摆脱那些领域吗?是。

你应该摆脱那些领域吗?也许不是。

如果您发现自己特定地按日期或时间进行查询,那么单独存储和索引它们会比执行WHERE DATE(timestamp) = '01-01-2001'这样不可索引且效率低下的事情更有效。

取决于该表的查询。