2017-03-17 86 views
0

我是MySQL数据库中的新成员。Datetime vs Timestamp字段

你会推荐在表格创建中使用日期时间或时间戳字段以及为什么。 我使用MySQL 5.7和innodb引擎。

谢谢

+1

datetime字段只包含日期年月,而时间戳fileld包含小时分钟也...因此,它取决于您的要求,以及如何数据存储....但我会建议采取时间戳fileld,这将很容易过滤并订购数据 –

+2

@AnkitAgrawal:dateTIME不仅包含“日期年份”。它也包含时间。因此,名称... – Nanne

+0

你也可以看到http://stackoverflow.com/questions/409286/should-i-use-field-datetime-or-timestamp –

回答

1

对于创建领域,我会使用时间戳。这种方式不会遇到时区问题,这可能会非常棘手。

对于例如生日,时间戳并非有用,因为您必须处理1970年1月1日的EPOCH又名时间戳“0”。但对于创建时间而言,这应该不重要。

0

MySQL中的时间戳一般用于跟踪对记录的更改,并且每次记录更改时都会更新。如果你想存储一个特定的值,你应该使用日期时间字段。

如果您想要在使用UNIX时间戳或本机MySQL日期时间字段之间做出决定,请使用本机格式。您可以使用("SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)")这种方式在MySQL中进行计算,如果您想使用PHP对记录进行操作,则在查询记录时,将值的格式更改为UNIX时间戳("SELECT UNIX_TIMESTAMP(my_datetime)")很简单。

所以这是最明智的使用日期时间为大多数数据库操作

0

我会用TIMESTAMP用于任何需要,因为它支持的东西一样ON UPDATE CURRENT_TIMESTAMP或有CURRENT_TIMESTAMP作为默认值进行自动管理。

这不可能与DATETIME但我更喜欢格式更好,因为你不需要转换它。所以我会用它来做其他事情。

如果您需要一种可自动生成的灵活格式,那么您可能需要使用TIMESTAMP并在需要时进行转换。