相关疑难解决方法(0)

2598
推荐指数
34
解决办法
84万
查看次数

MySQL 5.7时间戳字段显示日期时间?

我的数据库中有一列名为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

编辑1(屏幕截图):

这是一TIMESTAMP列,默认值为CURRENT_TIMESTAMP 在此处输入图片说明

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

编辑2:

如果(基于一个答案)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中尝试了相同的结果

mysql datetime timestamp phpmyadmin

2
推荐指数
1
解决办法
299
查看次数

标签 统计

datetime ×2

mysql ×2

timestamp ×2

phpmyadmin ×1

sqldatatypes ×1