在MySQL中选择TIMESTAMP而非DATETIME列的理由是什么?

Dan*_*oap 6 mysql datetime timestamp date

免责声明:这可能是日期时间与时间戳的重复,但我觉得我不相信答案:

我的问题是:
在MySQL中选择TIMESTAMP而不是DATETIME列有什么好理由?

我很确定我不知道关于这两者之间的差异的所有内容,所以我将尝试列出DATETIME(DT)与TIMESTAMP(TS)相比我的知识的主要优点:

  • DT是人类可读的(TS不是没有使用TO_DATE)
  • DT有8999年的时间跨度possble(1000-01-01 00:00:009999-12-31 23:59:59)
    (TS大约只有68岁,1970-01-012038-01-19)
  • DT字段似乎表现更好(根据这篇博文)
  • DT可用于高级日期计算(SELECT NOW() + INTERVAL 2 DAY)

反之亦然:

  • TS只需要4个字节(DT使用8个)
  • TS 存储为UTC值并根据客户端的时区设置进行更改
  • TS 列可用作"日志",用于监视行何时发生更改

我看到使用它的唯一原因就是行监视,但是查看范围TIMESTAMP,它将以"仅"28年*结束,我宁愿选择插入或更新触发器.

那么,我错过了什么?我还没有看到一个真正的好理由为任何目的而选择时间戳?

*我知道,这看起来很长,但是在60年代,一些工程师也决定削减2字节的年度字段,因为他们的计算机系统永远不会运行到2000年.....

Xor*_*lev 3

DT 列还可以充当“日志”来监视行何时更改,我使用它们和触发器来做到这一点。

在处理大量 PHP 内容时,我通常使用时间戳来减少过多的日期解析。如果需要,我可以更新我的软件以使用日期时间。