我的数据库中有一列名为time。此列的类型为timestamp,默认值为CURRENT_TIMESTAMP
但是在一些插入之后,phpMyAdmin它在其中将值显示为datetime,例如2019-05-05 04:24:45,甚至在那里也显示了时区并且可以更改!
我以为MySQL的时间戳是4个字节(相比于datetime的8个字节),并且不存储时区,数据与INT(10)相同,例如:(1557094115自1970年以来经过的秒数或类似的东西)
谁能解释一下,是bug还是什么?
MySQL版本5.7.25
这是一TIMESTAMP列,默认值为CURRENT_TIMESTAMP

正如您所看到的那样DATETIME,我无法将它与unix_timestamp的整数值进行比较...也可以将TimeZone更改为任何值(我认为时间戳记不存储时区...)

如果(基于一个答案)MySQL在内部将其存储为整数,那么为什么不能将其与整数进行比较?(以下查询无效)
DELETE FROM `table` WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL :days DAY))
Run Code Online (Sandbox Code Playgroud)
SQLSTATE [22007]:无效的日期时间格式:1292错误的日期时间值:第1行的“时间”列为“ 1555980012”
我也在Sequel Pro和MySQLWorkbench中尝试了相同的结果