在 MySQL 中处理日期和时间 - 第四章节

本文详细介绍了在MySQL中使用MAKEDATE(), MAKETIME()和STR_TO_DATE()函数创建日期、时间和DATETIME的方法,包括示例和注意事项。涵盖了从基本函数到组合应用的过程,适合进一步理解时态数据操作。
摘要由CSDN通过智能技术生成

创建日期或时间

在这个关于日期和时间的系列中,我们探索了 MySQL 的五种时态数据类型,以及它的许多面向日期或时间的函数中的一些。在本文中,我们将介绍在 MySQL 中创建日期和时间的几种方法。

使用 MAKEDATE() 函式

第 3 部分中,我们简要介绍了 MAKEDATE() 函数。它接受 year 和 dayofyear,并返回生成的日期值。例如,MAKEDATE(2021, 200) 将返回“2021-07-19”的日期。这个函数的缺点应该很明显;如果你有 year、month 和 day,则需要进行一些计算来确定 dayofyear。在这种情况下,你可以通过将 MAKEDATE() 与 DATE_ADD() 组合来创建 DATE。day 为 1 的 MAKEDATE() 将为返回给定年份的第一天的 DATE,然后你可以使用 DATE_ADD() 添加月份和日期。这是一个仅设置 year 和 month 的示例:

此 SELECT 语句也包括日期:

MAKETIME() 函数

如果你只想创建一个 TIME,则 MAKETIME() 返回一个根据小时、分钟和秒参数计算的时间值:

第二个参数可以有毫秒的小数部分:

STR_TO_DATE() 函数

创建 DATE、TIME 或 DATETIME 的另一个选项是使用 STR_TO_DATE() 函数。它接受一个日期字符串和一个格式字符串并返回:

  • 如果字符串仅包含日期,则为 DATE 值
  • 如果字符串仅包含时间,则为 TIME 值
  • 如果格式字符串包含日期和时间部分,则为 DATETIME 值

此外,如果从 str 中提取的日期、时间或日期时间值无效,则 STR_TO_DATE() 返回 NULL 并产生警告。

案例分享

以下是 Navicat for MySQL 16中的几个日期:

扫描从 str 的开头开始,如果发现格式不匹配,则扫描失败。同时,忽略 str 末尾的额外字符:

未指定的日期或时间部分的值为 0,因此日期或时间字符串中未完全指定的值会产生部分或全部部分设置为 0 的结果:

有关可以在格式中使用的说明符的完整列表,请参阅 MySQL 官方文档中的 DATE_FORMAT() 函数描述

组合 MAKEDATE()、MAKETIME() 和 STR_TO_DATE() 函数

如果我们有两个单独的 DATE 和 TIME 值,我们可以连接 MAKEDATE() 和 MAKETIME() 的结果然后将组合字符串传递给 STR_TO_DATE() 来获得 DATETIME 值。虽然这听起来可能需要做很多工作,但实际上非常简单:

总结

“在 MySQL 中处理日期和时间”这一部分中,我们介绍了使用 MySQL 的一些专用日期和时间函数在 MySQL 中创建日期和时间的几种方法。在下一部分中,我们将了解如何在 SELECT 查询中使用时态数据。如果你想试一下 Navicat 16,你可以在这里下载 14 天试用版。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值