Unix 时间戳与日期时间

问题描述 投票:0回答:3

我有一个Mysql表,其中有一列

add_date
。它跟踪记录添加到数据库的日期/时间。

根据此表查询:

  1. 显示添加记录的时间,格式为:2小时前、4周前、1年前等
  2. 允许用户搜索任意日/月/年插入的记录。因此,可以允许用户选择仅查看 2009 年插入的记录。

在这种情况下哪个更好 - unix 时间戳或日期时间?

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

Unix 时间戳似乎更适合在 PHP 中转换为

2 hours
ago 格式,而且它与时区无关。但日期时间具有更好的可读性,并且查询特定日期/时间/年份似乎更容易。

你的建议?

php mysql sql datetime unix-timestamp
3个回答
16
投票

当您有选择时,我会建议选择 mySQL 日期。

  • 您无需处理日期范围问题s

  • 您可以使用mySQL的日期函数轻松查询时间跨度(

    BETWEEN(), DATE_ADD
    等)

  • 与日期相关的查询会更快,特别是当您有数百万条记录时,因为您不必使用

    FROM_UNIXTIME()
    ,这在大型查询中可能会很昂贵

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


5
投票

我会选择mysql格式,因为mysql有大量的日期时间函数,将其与时间戳一起使用将花费你另一次转换。

但是由于桌子上有数百万 随着时间的推移记录,同时具有 列可能会影响大小 数据库。

天啊。
您真的关心 4 MB 的额外空间吗?


5
投票

您可以通过使用 unix 时间戳和 MySQL

from_unixtime()
函数在需要时将结果转换为日期时间格式来获得两全其美的效果。

© www.soinside.com 2019 - 2024. All rights reserved.