前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 MySQL 中处理日期和时间(二)

在 MySQL 中处理日期和时间(二)

作者头像
MySQL技术
发布2022-06-08 18:50:58
3.4K0
发布2022-06-08 18:50:58
举报
文章被收录于专栏:MySQL技术MySQL技术

第二章节:TIMESTAMP 和 YEAR 类型

欢迎回到这个关于在 MySQL 中处理日期和时间的系列。在前面章节中,我们探讨 MySQL 的时态数据类型。第一部分介绍了 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 个字节。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 客户端的表设计器中,时间戳的精度可以在“长度”列中定义:

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

  • YEAR 类型

许多 DBA 选择将年份存储为整数(Interger)。这样做当然是没有问题,但使用 MySQL 的专用 YEAR 类型更有效,因为 YEAR 类型仅使用 1 个字节存储。它可以声明为 YEAR(2) 或 YEAR(4) 以指定两个或四个字符的显示宽度。如果未指定宽度,则默认为四个字符。YEAR(4) 和 YEAR(2) 具有不同的显示格式,但具有相同的值范围:

  • 对于 4 位数格式,MySQL 以 YYYY 格式显示 YEAR 值,范围为 1901 到 2155,或 0000。
  • 对于 2 位数格式,MySQL 仅显示最后两位(最低有效位)数字;例如,70(代表 1970 或 2070)或 69(代表 2069)。

以下是 Navicat 表设计器中四位数格式的年份列示例:

因此,我们在表中看到完整年份:

  • 总结

我们对五种 MySQL 时态数据类型的探索到此结束。下一部分将介绍一些有用的日期和时间函数。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档