免责声明:这可能是重复的日期时间与时间戳? https://stackoverflow.com/questions/409286/datetime-vs-timestamp,但我觉得我不相信答案:
我的问题是:
在 MySQL 中选择 TIMESTAMP 而不是 DATETIME 列的充分理由是什么?
我很确定我不知道这两者之间的所有区别,所以我将尝试列出 DATETIME 的主要优点(DT
)与时间戳(TS
) 据我所知:
-
DT
是人类可读的(TS
并非没有使用TO_DATE
)
-
DT
可能的时间跨度为 8999 年 (1000-01-01 00:00:00
to 9999-12-31 23:59:59
)
(TS
年仅68岁左右,1970-01-01
to 2038-01-19
)
-
DT
领域似乎表现更好(根据这篇博文 http://dbscience.blogspot.com/2008/08/can-timestamp-be-slower-than-datetime.html)
-
DT
可用于高级日期计算(SELECT NOW() + INTERVAL 2 DAY
)
反之亦然:
-
TS
只需要 4 个字节(DT
uses 8)
-
TS
存储为 UTC 值并根据客户端的时区设置进行更改
-
TS
列可以作为“日志”来监视行何时发生更改
我认为使用它的唯一原因是行监控,但是查看范围TIMESTAMP
,这将“仅”28 年*结束,我宁愿使用插入或更新触发器。
那么,我错过了什么?我还是没有看到真的很好出于任何目的选择时间戳的原因是什么?
* I know, this is appears quite long, but back in the 60s some engineers also decided to shave off 2 bytes of the year field, because their computer systems would never run until the year 2000 .....
DT 列还可以充当“日志”来监视行何时更改,我使用它们和触发器来做到这一点。
在处理大量 PHP 内容时,我通常使用时间戳来减少过多的日期解析。如果需要,我可以更新我的软件以使用日期时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)