admin 管理员组

文章数量: 1184232


2024年3月13日发(作者:c语言冒泡法从大到小排序)

Navicat 在 MySQL 中处理日期和时间

第二章节

 TIMESTAMP 和 YEAR 类型

欢迎回到这个关于在 MySQL 中处理日期和时间的系列。在前两部分中,我们探讨

MySQL 的时态数据类型。第 1 部分介绍了 DATE、TIME 和 DATETIME 数据类型,而

本部分将介绍余下的 TIMESTAMP 和 YEAR 类型。

 TIMESTAMP 类型

TIMESTAMP 类型与 MySQL 中的 DATETIME 相似,两者都是包含日期和时间组合

的时态数据类型。这就引出了一个问题,为什么同一信息有两种类型?首先,MySQL 中

的时间戳通常用于跟踪记录的更改,并且通常在每次记录更改时更新,而日期时间用于存

储特定的时间值。另一方面,DATETIME 表示日期(在日历中)和时间(在挂钟上),而

TIMESTAMP 表示明确定义的时间点。如果你的应用程序处理时区,这种区别可能非常重

要,因为“2009-11-01 14:35:00”是多久之前取决于你所在的时区。同时,自“1970-01-01

00:00:00 UTC”以来的 1248761460 秒总是指同一时间点。

在存储方面,TIMESTAMP 需要 4 个字节,而 DATETIME 需要 5 个字节。

TIMESTAMP 列存储 14 个字符,但你可以以不同的方式显示它,具体取决于你如何定义

它。例如,如果你将列定义为 TIMESTAMP(2),则只会显示两位数的年份(即使存储了完

整值)。这种方法的优点是,如果你稍后决定要显示完整值,你可以更改表定义,完整值将

会显示。

下面是定义 TIMESTAMP 的各种方法,以及生成的显示格式:

• TIMESTAMP(14): YYYY-MM-DD HH:MM:SS

• TIMESTAMP(12): YY-MM-DD HH:MM:SS

• TIMESTAMP(10): YY-MM-DD HH:MM

• TIMESTAMP(8): YYYY-MM-DD

• TIMESTAMP(6): YY-MM-DD

• TIMESTAMP(4): YY-MM

• TIMESTAMP(2): YY

在 Navicat 16 表设计器中,时间戳的精度可以在“长度”列中定义:

如果没有提供“长度”(如上例所示),Navicat 会显示完整字段,就好像它被声明为

TIMESTAMP(14):


本文标签: 时间 显示 定义 方法