构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 datetime 以及使用 int 来存储 unix timestamp。
不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类型来存储日期时间呢?
那我们就一步一步来分析他们的特点,这样我们根据自己的需求选择合适的字段类型来存储 (优点和缺点是比较出来的 , 跟父母从小喜欢拿邻居小孩子跟自己比一样的)
datetime 和 timestamp
datetime 更像日历上面的时间和你手表的时间的结合,就是指具体某个时间。 timestamp 更适合来记录时间,比如我在某某区时间现在是 2020-08-02 10:35:52,
你在其它(某某区此时时间为 2020-08-02 11:35:52),我和你在聊天,数据库记录了时间,取出来之后,对于我来说时间是 2020-08-02 10:35:52,
对于你来说就是 2020-08-02 11:35:52。所以就不用考虑时区的计算了。 时间范围是 timestamp 硬伤(1970-2038),当然 datetime (1000-9999)也记录不了刘备什么时候出生(161 年)。
timestamp 和 UNIX timestamp
显示直观,出问题了便于排错,比好多很长的 int 数字好看多了 int 是从 1970 年开始累加