Skip to Content
《MySQL 烹饪书》第 4 版
book

《MySQL 烹饪书》第 4 版

by Sveta Smirnova, Alkin Tezuysal
May 2025
Beginner to intermediate
974 pages
14h 39m
Chinese
O'Reilly Media, Inc.
Content preview from 《MySQL 烹饪书》第 4 版

第 8 章 使用日期和时间 处理日期和时间

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

8.0 引言

MySQL 有几种表示日期和时间的数据类型,还有许多对它们进行操作的函数。MySQL 以特定格式存储日期和时间,了解它们对避免操作时间数据的结果出现意外很重要。本章包括在 MySQL 中处理日期和时间值的以下几个方面:

选择时态数据类型

在创建表格时,MySQL 提供了多种时间数据类型供您选择。了解了它们的属性,就能正确地选择它们。

显示日期和时间

MySQL 默认使用特定格式显示时间值。您可以使用相应的函数生成其他格式。

更改客户端时区

服务器按照客户端当前的时区而不是自己的时区解释TIMESTAMPDATETIME 值。位于不同时区的客户端应设置自己的时区,以便服务器能正确解释TIMESTAMP的值。

确定当前日期和时间

MySQL 提供返回日期和时间的函数。对于必须知道这些值或需要计算与之相关的其他时间值的应用程序来说,这些函数非常有用。

跟踪行的修改时间

TIMESTAMPDATETIME 数据类型具有特殊属性,可以自动记录行创建时间和最后修改时间。

将日期和时间分解为组件值,并从组件值创建日期和时间

如果只需要一个分量,如日期的月份部分或时间的小时部分,则可以拆分日期和时间值。反之,您也可以组合组件值来合成日期和时间。

日期或时间与基本单位之间的转换

与使用日期或时间值本身相比,使用日期或时间值所代表的天数或秒数更容易执行某些时间计算,如日期算术运算。 MySQL 可以执行日期和时间值与天数或秒数等更基本单位之间的转换。

日期和时间运算

您可以通过加减时间值生成其他时间值或计算各值之间的时间间隔。应用包括年龄测定、相对日期计算和日期平移。

根据时间限制选择数据

前几节讨论的用于生成输出值的计算方法也可用于WHERE 子句,以指定如何使用时间条件选择行。

本章介绍了几个对日期和时间值进行操作的 MySQL 函数,但还有许多其他函数。要熟悉全套函数,请查阅《MySQL 参考手册》。 可用函数的多样性意味着,通常可以用多种方法执行给定的时间计算。我们有时会举例说明实现给定结果的其他方法,本章中涉及的许多问题都可以用此处所示方法以外的其他方法解决。我们邀请你进行实验,寻找其他解决方案。你可能会发现一种更有效或更直观的方法。

实现本章讨论的配方的脚本位于 ,在recipes 源代码发行版的dates目录中。用于创建表格的脚本位于tables目录中。

8.1 选择时态数据类型

问题

您需要存储时间数据,但不确定哪种数据类型最适合 。

解决方案

根据要存储信息的特点和使用方式选择数据类型。

讨论

要选择时态数据类型,请考虑以下问题:

  • 您只需要时间值、日期值,还是日期和时间的组合值?

  • 您需要的数值范围是多少?

  • 您是否希望将列自动初始化为当前日期和时间?

MySQL 提供了用于分别表示日期和时间值的DATETIME 数据类型,以及用于组合日期和时间值的DATETIMETIMESTAMP 类型。这些值具有以下特点:

  • DATE 值有 YYYY-MM-DD格式,其中 YY, MMDD 代表日期的年、月、日部分。DATE 值的支持范围是1000-01-019999-12-31

  • TIME 值有 hh:mm:ss格式,其中 hh, mmss是时间的时、分、秒部分。TIME 值通常被认为是一天中的时间值,但 MySQL 实际上将其视为经过时间。因此,它们可能大于23:59:59 ,甚至是负值。(TIME 列的实际范围是-838:59:59 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

SQL 口袋指南,第 4 版

SQL 口袋指南,第 4 版

Alice Zhao
《Java 思维》,第二版

《Java 思维》,第二版

Allen B. Downey, Chris Mayfield

Publisher Resources

ISBN: 9798341659452