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:00至9999-12-31 23:59:59)TS大约只有68岁,1970-01-01来2038-01-19)DT字段似乎表现更好(根据这篇博文)DT可用于高级日期计算(SELECT NOW() + INTERVAL 2 DAY)反之亦然:
TS只需要4个字节(DT使用8个)TS 存储为UTC值并根据客户端的时区设置进行更改TS 列可用作"日志",用于监视行何时发生更改我看到使用它的唯一原因就是行监视,但是查看范围TIMESTAMP,它将以"仅"28年*结束,我宁愿选择插入或更新触发器.
那么,我错过了什么?我还没有看到一个真正的好理由为任何目的而选择时间戳?
*我知道,这看起来很长,但是在60年代,一些工程师也决定削减2字节的年度字段,因为他们的计算机系统永远不会运行到2000年.....
DT 列还可以充当“日志”来监视行何时更改,我使用它们和触发器来做到这一点。
在处理大量 PHP 内容时,我通常使用时间戳来减少过多的日期解析。如果需要,我可以更新我的软件以使用日期时间。