几年前,我尝试使用较早版本的 MySQL 运行它来创建此表,它运行良好。在较新版本的 MySQL 中,timestamp(8) 似乎现在出现问题。
CREATE TABLE top_hits (
sid int(11),
ip varchar(20),
cdate timestamp(8)
)
我可以使用什么来替代第 4 行的时间戳 (8)?年年月日
cdate timestamp(8)
提前致谢。
最佳答案
字段定义中的 (8)
部分不会对以下方面有任何影响:
- 列的大小(以字节为单位)
- 存储在其中的数值范围(1970 年到 2038 年中途)
- 是否可以在其中存储小时、分钟和秒
(8)
部分指定显示大小。当执行 SELECT
时,MySQL 将返回时间戳 as described here 中日期的第一个 XYZ
部分.
因此,只需从创建表查询中删除显示部分即可。这将创建一个 timestamp
列。您可以使用 MySQL 函数或在 PHP 中格式化时间戳(例如,切断时间部分等)。
或者使用 DATE
根本不存储时间部分的数据类型。
关于MySQL - Timestamp(8) 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14036523/