Unix时间戳VS datetime

Yet*_*eti 19 php mysql sql

可能重复:
datetime vs timestamp?

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

基于此表的查询:

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

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

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

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

你的建议?

Pek*_*ica 16

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

  • 你不会有照顾的日期范围问题小号

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

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

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

  • 这个.如果你想在php端使用时间戳,只需使用UNIX_TIMESTAMP(your_column).但是在您的数据库中,使用本机日期类型来存储日期.此外,数据库中的数据可能被其他应用程序使用,这些应用程序可能更喜欢SQL日期格式而不是时间戳. (2认同)

You*_*nse 5

我会选择mysql格式,只是因为mysql具有大量的datetime函数,要在时间戳中使用该函数会花费您另一次转换。

但是由于该表将随着时间的流逝而具有数百万条记录,因此同时拥有两列可能会影响数据库的大小。

天啊。
您是否真的对另外4 MB的空间感兴趣?


Kai*_*aja 5

通过使用unix时间戳和MySQL from_unixtime()函数将结果转换为需要的日期时间格式,可以兼得两者。