MySQL - Timestamp(8) 替代方案?

标签 mysql sql timestamp sqldatatypes

几年前,我尝试使用较早版本的 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/

相关文章:

mysql - DBMS 是否单独存储引用属性?

php - mysql 字段数据类型

mysql - mysql中记录组之间的空闲时间段

h2 - H2数据库字符串要加时间戳

php - 如何按 UNIX 时间戳对 mysql 结果进行分区

java - 通过 XML 解析器动态将 ZonedDateTime 字符串映射到 LocalDateTime

MySQL 表达式检索百分比

PHP 表单不更新 SQL 行

mysql - 确保表条目是唯一的

php - mysql/PHP mysql更新不更新数据库