Unix时间戳VS datetime

时间:2010-06-01 09:17:14

标签: php sql mysql

  

可能重复:
  datetime vs timestamp?

我有一个Mysql表,其中有一列add_date。它跟踪记录添加到数据库的日期/时间。

基于此表的查询:

  1. 以格式添加记录时间:2小时前,4周前,1年前等
  2. 允许用户搜索以任何日/月/年插入的记录。因此,可以允许用户选择仅查看2009年插入的记录。
  3. 在这种情况下哪个更好 - unix时间戳或日期时间?

    现在我正在使用这两种方法,但由于该表随着时间的推移会有数百万条记录,因此两列都可能会影响数据库的大小。

    Unix时间戳似乎更适合在PHP中转换为2 hours前格式,并且它与时区无关。但是,datetime具有更好的可读性,并且对特定日期/时间/年的查询似乎更容易。

    你的建议?

3 个答案:

答案 0 :(得分:16)

当你有选择时,我会说我的日期是

  • 您无需照顾date range issue s

  • 您可以使用mySQL的日期函数(BETWEEN(), DATE_ADD等)轻松查询时间跨度。

  • 与日期相关的查询会更快,尤其是当您有数百万条记录时,因为您不必使用FROM_UNIXTIME(),这在大型查询中可能会很昂贵

  • 在必要时将DATE字段转换为UNIX时间戳是孩子的游戏。

答案 1 :(得分:5)

我会选择mysql格式,因为mysql有很多日期时间函数,使用时间戳会花费你另一次转换。

  

但由于该表将有数百万   记录随着时间​​的推移,两者兼得   列可能会影响的大小   数据库中。

哦,我的 你真的关心4个额外的兆字节空间吗?

答案 2 :(得分:5)

通过使用unix时间戳和MySQL from_unixtime()函数,您可以在需要时将结果转换为日期时间格式,从而实现两全​​其美。