关于php:timestamp与datetime mysql

TIMESTAMP vs. DATETIME MySQL

本问题已经有最佳答案,请猛点这里访问。

我需要将一个数据库从SQL转换为MySQL,并成功地做到了这一点,但是这个问题现在更倾向于MySQL。

我注意到,我可以将DateTime字符串插入到Timestamp列类型中,从我听说的接受日期时间戳或实际时间戳的时间戳来看,这一切都很好,不过,我现在对"ON UPDATE CURRENT_TIMESTAMP"很好奇,因为我把它放在数据库的一列中,因为它只能在Timestamp上使用。类型。当它基于CURRENT_TIMESTAMP进行更新时,是否会使用非格式的时间戳:YYYY-MM-DD HH:MM:SS

这将如何影响我从该列中提取的数据?

例如,当某些日期可能是数字时间戳,而其他日期可能是日期时间戳格式时,从时间戳列获取当前日期/时间是否困难?我是否应该只使用datetime作为此列的类型,而不使用ON_UPDATE功能来避免来自此处数据库的混合数据出现问题?


在内部,所有TIMESTAMP数据都存储为4字节整数,表示自unix epoch以来的秒数。您在软件中看到的内容取决于软件如何显示这些数据。例如,如果将时区更改为不同的时区,它将对从TIMESTAMP列读取的数据产生影响(因为unix epoch的格式是UTC)

不会有数据混合。MySQL会把你的YYYY-MM-DD HH:MM:SS转换成时间戳。但是要注意时区!

当查询TIMESTAMP列时,mysql默认将它们格式化为人类可读的形式,因此不要期望从中获得整数。您将得到一个在YYYY-MM-DD HH:MM:SS中格式化的字符串,就像来自DATETIME字段一样。